0

Pythonのリスト内のリストの2番目の項目を取得しようとしています。

例:

people = [['John Doe', u'', u'25.78', u''], ['John Doe', u'', u'13.39', u''], ['John Doe', u'', u'11.93', u'0.00'], ['John Doe', u'', u'14.97', u'0.00'], ['John Doe', u'', u'14.34', u''], ['John Doe', u'', u'21.08', u''], ['John Doe', u'', u'13.24', u''], ['John Doe', u'', u'13.11', u'0.00'], ['John Doe', u'', u'', u''], ['John Doe', u'', u'19.45', u'0.00'], ['John Doe', u'', u'17.56', u''], ['John Doe', u'', u'20.57', u''], ['John Doe', u'', u'28.50', u''], ['John Doe', u'', u'24.38', u'0.00'], ['John Doe', u'', u'31.13', u''], ['John Doe', u'', u'17.20', u''], ['John Doe', u'', u'18.52', u'0.00'], ['John Doe', u'', u'6.42', u'0.00'], ['John Doe', u'', u'17.31', u'']]

私がやろうとしているのは、リスト内の各リストの3番目の要素を取得することです。

私は私のリターンを次のようにしたいと思います:

['25.78','13.39','11.93','14.97','14.34']等々。

また、ボーナスポイント。uリストの各項目の前にあるものは何かに影響しますか?

4

5 に答える 5

2
In [57]: people = [['John Doe', u'', u'25.78', u''], ['John Doe', u'', u'13.39', u''], ['John Doe', u'', u'11.93', u'0.00'], ['John Doe', u'', u'14.97', u'0.00'], ['John Doe', u'', u'14.34', u''], ['John Doe', u'', u'21.08', u''], ['John Doe', u'', u'13.24', u''], ['John Doe', u'', u'13.11', u'0.00'], ['John Doe', u'', u'', u''], ['John Doe', u'', u'19.45', u'0.00'], ['John Doe', u'', u'17.56', u''], ['John Doe', u'', u'20.57', u''], ['John Doe', u'', u'28.50', u''], ['John Doe', u'', u'24.38', u'0.00'], ['John Doe', u'', u'31.13', u''], ['John Doe', u'', u'17.20', u''], ['John Doe', u'', u'18.52', u'0.00'], ['John Doe', u'', u'6.42', u'0.00'], ['John Doe', u'', u'17.31', u'']]

In [58]: [p[2] for p in people]
Out[58]: 
[u'25.78',
 u'13.39',
 u'11.93',
 u'14.97',
 u'14.34',
 u'21.08',
 u'13.24',
 u'13.11',
 u'',
 u'19.45',
 u'17.56',
 u'20.57',
 u'28.50',
 u'24.38',
 u'31.13',
 u'17.20',
 u'18.52',
 u'6.42',
 u'17.31']

文字列のu前には、基本的にそれらがユニコード文字列であると書かれています。それらを通常のASCII文字列にキャストする場合(ASCII文字しかない場合):

In [59]: [str(p[2]) for p in people]
Out[59]: 
['25.78',
 '13.39',
 '11.93',
 '14.97',
 '14.34',
 '21.08',
 '13.24',
 '13.11',
 '',
 '19.45',
 '17.56',
 '20.57',
 '28.50',
 '24.38',
 '31.13',
 '17.20',
 '18.52',
 '6.42',
 '17.31']
于 2012-12-04T01:41:24.607 に答える
1

単純なリスト内包表記を使用して、3番目の要素を取得できます。

numbers = [i[2] for i in people]

u、Unicode文字列であることを示します。ascii文字が含まれていると仮定すると(この場合は含まれています) str、Unicodeが必要ない場合にのみ使用できます。

numbers = [str(i[2]) for i in people]
于 2012-12-04T01:41:53.130 に答える
1
result = [each[2] for each in people]
print(result)
于 2012-12-04T01:41:58.917 に答える
0

そしてここでそれはずんぐりしている

people = numpy.array(people)
print people[:,2]
于 2012-12-04T01:46:07.603 に答える
0

また、楽しみのために:

result = []
for x in range(len(people)):
    result.append(people[x][2])
于 2012-12-04T01:52:26.513 に答える