-4

str int リストとタプルを含むファイルがあります。それらを別のリストに入れたい。

これは私のコード例です:

for word in file:
    if type(word) == int:
        ......
    if type(word) == list:
        ......

int use type(word) == int を確認できます

しかし、コードで 'type(word) == list' を使用できません。

では、ファイルが「リスト」または「タプル」であることを確認する方法は?

4

3 に答える 3

0

ファイルの各行が何を表すかを予測するために利用できるパターンがない場合は、前もって、次の簡単で汚い解決策を試すことができます。

for word in file:
    # Read the word as the appropriate type (int, str, list, etc.)
    try:
        word = eval(word) # will be as though you pasted the line from the file directly into the Python file (e.g. "word = 342.54" if word is the string "342.54").  Works for lists and tuples as well.
    except:
        pass # word remains as the String that was read from the file

    # Find what type it is and do whatever you're doing
    if type(word) == int:
        # add to list of ints
    elif type(word) == list:
        # add to list of lists
    elif type(word) == tuple:
        # add to list of tuples
    elif type(word) == str:
        # add to list of strs
于 2013-04-15T23:14:11.377 に答える
-2

タイプを使用できます

from types import *
type(word) == ListType
type(word) == TupleType

あなたの質問として、次のように単純にコーディングできます。

>>> from types import *
>>> file = [1,"aa",3,'d',[23,1],(12,34)]
>>> int_list = [item for item in file if type(item)==int]
>>> int_list
[1, 3]
于 2013-04-15T22:58:19.297 に答える