使用Python从行列表中提取列

bsu*_*ire 3 python transpose

我有以下数据集,这是一系列存储为嵌套列表的行:

[['John', '35', 'UK'],
['Emma', '43', 'UK'],
['Lucy', '25', 'AU']]
Run Code Online (Sandbox Code Playgroud)

(行总长度相同)

我需要以'UK', 'AU'可迭代的方式返回(对排序无动于衷).

是否有一个单行程序返回第三列中包含的唯一值,哪个比这简单?

set(list(map(list, zip(*l)))[2])
Run Code Online (Sandbox Code Playgroud)

(参考:转置列表清单)

The*_*nse 5

改变你自己的代码:

Python 3.x:

set(list(zip(*l)[2]))
Run Code Online (Sandbox Code Playgroud)

Python 2.x:

set(zip(*l)[2])
Run Code Online (Sandbox Code Playgroud)

演示:

l=[['John', '35', 'UK'],['Emma', '43', 'UK'],['Lucy', '25', 'AU']]
set(list(zip(*l)[2]))
{'AU', 'UK'}
Run Code Online (Sandbox Code Playgroud)