私はこのようなリストを持っています:
a = ((4.0, 4, 4.0), (3.0, 3, 3.6), (3.5, 6, 4.8))
このような結果が必要です([〜#〜] every [〜#〜]リストの最初の要素):
4.0, 3.0, 3.5
A [:: 1] [0]を試しましたが、機能しません
勉強を始めたばかりですPython数週間前。Pythonバージョン= 2.7.9
インデックスを取得できます[0]
リスト内包表記の各要素から
>>> [i[0] for i in a]
[4.0, 3.0, 3.5]
また、ただつまらないために、list
のlist
がなく、Tuple
のTuple
があります。
zipを使用
columns = Zip(*rows) #transpose rows to columns
print columns[0] #print the first column
#you can also do more with the columns
print columns[1] # or print the second column
columns.append([7,7,7]) #add a new column to the end
backToRows = Zip(*columns) # now we are back to rows with a new column
print backToRows
numpyを使用することもできます
a = numpy.array(a)
print a[:,0]
あなたはそれを得ることができます
[ x[0] for x in a]
a
の各リストの最初の要素のリストを返します
3つの方法を比較
D2_list=[list(range(100))]*100
t1=time.time()
for i in range(10**5):
for j in range(10):
b=[k[j] for k in D2_list]
D2_list_time=time.time()-t1
array=np.array(D2_list)
t1=time.time()
for i in range(10**5):
for j in range(10):
b=array[:,j]
Numpy_time=time.time()-t1
D2_trans = list(Zip(*D2_list))
t1=time.time()
for i in range(10**5):
for j in range(10):
b=D2_trans[j]
Zip_time=time.time()-t1
print ('2D List:',D2_list_time)
print ('Numpy:',Numpy_time)
print ('Zip:',Zip_time)
Zip方式が最適です。 numpyがインストールされていないクラスターサーバーでmapreduceジョブの列ごとのプロセスを実行しなければならなかった場合、非常に役に立ちました。