>>>lis = df['col'].values.tolist()
>>>lis = [[(('A', 'WE'), ('1,21', 'rr'), ('io', 'mp'))],
[(('B', 'WE'), ('5', 'rr'), ('io', 'mp'))],
[(('A', 'WE'), ('3', 'rr'), ('io', 'mp')),
(('C', 'WE'), ('0', 'rr'), ('io', 'mp'))],
....
[(('D', 'WE'), ('6', 'rr'), ('io', 'mp'))],
[(('A', 'WE'), ('9.0', 'rr'), ('io', 'mp'))]]如何只获取每个元组的第一元素并将其重新格式化为:
[[A, 1,21, io],
[B, 5, io],
[A, 3, io],
[C, 0, io],
....
[D, 6, io],
[A, 9.0', io]]我都准备好了:
[' '.join(map(str,lis[0][0])) for x in lis]和
[' '.join(map(str,lis[0][:1])) for x in lis]和
' '.join(map(str, lis))和
new_lis, _ = zip(*lis[0][0])
return ' '.join(new_lis)更新
熊猫栏是这样的:
Col
0 [(('A', 'WE'), ('1,21', 'rr'), ('io', 'mp'))]
1 [(('B', 'WE'), ('5', 'rr'), ('io', 'mp'))]
2 [(('A', 'WE'), ('3', 'rr'), ('io', 'mp'))
3 [(('C', 'WE'), ('0', 'rr'), ('io', 'mp'))]
....
n [(('D', 'WE'), ('6', 'rr'), ('io', 'mp'))]
n-1 [(('A', 'WE'), ('9.0', 'rr'), ('io', 'mp'))]发布于 2017-01-05 18:39:07
你可以试试这个:
new_list = [[nested[0] for nested in sub_l] for l in lis for sub_l in l]
print(new_list)
[['A', '1,21', 'io'],
['B', '5', 'io'],
['A', '3', 'io'],
['C', '0', 'io'],
['D', '6', 'io'],
['A', '9.0', 'io']]它不是很可读的,但它使你想要的东西。
UPDATE如果您想要一个字符串列表,可以使用以下代码:
[",".join(nested[0] for nested in sub_l) for l in lis for sub_l in l]发布于 2017-01-05 18:39:56
lis = [[(('A', 'WE'), ('1,21', 'rr'), ('io', 'mp'))],
[(('B', 'WE'), ('5', 'rr'), ('io', 'mp'))],
[(('A', 'WE'), ('3', 'rr'), ('io', 'mp')),
(('C', 'WE'), ('0', 'rr'), ('io', 'mp'))],
[(('D', 'WE'), ('6', 'rr'), ('io', 'mp'))],
[(('A', 'WE'), ('9.0', 'rr'), ('io', 'mp'))]]
print [list(next(zip(*tup))) for subl in lis for tup in subl ]输出:
[['A', '1,21', 'io'],
['B', '5', 'io'],
['A', '3', 'io'],
['C', '0', 'io'],
['D', '6', 'io'],
['A', '9.0', 'io']]https://stackoverflow.com/questions/41492225
复制相似问题