3
mylist=[]
mylist.append(7)
mylist.extend(range(9,12))

そのようなことはpython3の1行で行うことができますか?

些細なことだと思いますが、どういうわけか思い出せず、その方法もわかりません。

4

3 に答える 3

8

このワンライナーを使用できます:

mylist = [7] + list(range(9,12))

目的のリストを返します。

[7, 9, 10, 11]
于 2012-04-13T10:26:03.677 に答える
2

リストコンストラクターには、好きなものを追加できます。例えば:

mylist = [7]

または:

mylist = list(range(9,12))

または、2つをつなぎ合わせるには:

mylist = [7] + list(range(9,12))

より複雑な構造の場合は、リスト内包表記が最適です。例えば:

mylist = [ (irow,icol) for irow in range(1,10) for irow in range(1,10) if i > j ]

リスト内包表記の詳細については、http: //docs.python.org/tutorial/datastructures.html#list-comprehensionsを参照してください。

(質問の変更を反映するように編集されました)。

于 2012-04-13T10:29:45.707 に答える
1

他の人が言っているようにPython2.*を使用している場合

for lid in [7] + range(9,len(row)):

動作します

Python 3. *を使用している場合、rangeはイテレータを返すようになったため、明示的にリストに変換する必要があります

オプション1:

for lid in [7] + list(range(9,len(row))):

オプション2:

for lid in itertools.chain([7],range(9,len(row))):
于 2012-04-13T10:46:29.613 に答える