我有一个python列表如下:
mylist = [('Item A','CA','10'),('Item B','CT','12'),('Item C','CA','14')]
我想将其拆分为基于第2列=='CA'
的列表期望的输出:
filtered_list = [('Item A','CA','10'),('Item C','CA','14')]
我的尝试:显然这里有一些问题!
mylist = [('Item A','CA','10'),('Item B','CT','12'),('Item C','CA','14')]
filtered_list[]
for row in mylist:
if [row:1] = 'CA'
filtered_list.append(mylist[row])
答案 0 :(得分:1)
您可以使用列表理解来实现此目的:
mylist = [('Item A','CA','10'),('Item B','CT','12'),('Item C','CA','14')]
filtered_list = [item for item in mylist if item[1]=='CA']
答案 1 :(得分:1)
您可以通过以下方式将python的过滤器用于此目的。
filtered_list = list(filter(lambda x: x[1] =='CA',mylist)))
答案 2 :(得分:0)
我不想写自己的答案,而是想指出解释错误的地方。
mylist = [('Item A','CA','10'),('Item B','CT','12'),('Item C','CA','14')]
filtered_list[] ## I believe this was typo
for row in mylist:
if [row:1] = 'CA' ## this where you missed it!
filtered_list.append(mylist[row])
我已更正您的代码。
mylist = [('Item A','CA','10'),('Item B','CT','12'),('Item C','CA','14')]
filtered_list = [] ## list created
for row in mylist:
if row[1] == 'CA': ## == for if condition and :
filtered_list.append(row) ## appending the row if row[1] == "CA"
print filtered_list