我有以下代码(工作代码):
import csv
original_list = [('1321', '01'), ('MessageXZY', '02'), ('DescriptionSKS', '03'), ('S7_6', '04'), ('S7_3', '05'), ('0A3B', '06'), ('MessageZYA', '07'), ('DescriptionKAM', '08'), ('9K44', '09'), ('MessageYAL', '10'),
('DescriptionAUS', '11'), ('S7_2', '12')]
code_list = ['1321', '0A3B','9K44']
grouped_tuples = []
for entry in original_list:
if entry[0] in code_list:
new_tuple = []
new_tuple.append(entry)
for i in range(original_list.index(entry)+1, len(original_list)):
if(original_list[i][0] not in code_list):
new_tuple.append(original_list[i])
else:
break
grouped_tuples.append(tuple(new_tuple))
如果我再加上:
for entry in grouped_tuples:
for item in entry:
print (item[1])
我得到以下列表:
01
02
03
04
05
06
07
08
09
10
11
12
我想要做的是从元组中删除这些数字。所以我没有使用上面的代码,而是使用了:
for entry in grouped_tuples:
for item in entry:
a = grouped_tuples.remove(item[1])
print (a)
但是我收到消息: ValueError:list.remove(x):x不在列表中我知道item [0]在我刚刚打印的列表中。导致此错误的原因是什么?
答案 0 :(得分:3)
您不一定需要BaseActivity
元素,您可以动态创建一个新的元组,其值为:
remove
答案 1 :(得分:0)
你的尝试对我来说似乎很复杂。除非我误解了你想要达到的目标,否则只需一个班轮即可。
[(k,) for (k,v) in original_list if k in code_list]
答案 2 :(得分:0)
要获取列表中元组的第一个元素,可以使用以下解决方案:
对于列表中的每个元组:
a
a
中的第一个元素存储为列表b
中的单个元素
元组E.g:
>>> a=[("x","z"),("y","z")]
>>> b=[(list(x)[0],) for x in a]
>>> b
[('x',), ('y',)]
在代码中使用此概念可以:
>>> grouped_tuples
[(('1321', '01'), ('MessageXZY', '02'), ('DescriptionSKS', '03'), ('S7_6', '04'), ('S7_3', '05')), (('0A3B', '06'), ('MessageZYA', '07'), ('DescriptionKAM', '08')), (('9K44', '09'), ('Messag
eYAL', '10'), ('DescriptionAUS', '11'), ('S7_2', '12'))]
>>> #preserve grouped_tuples
... tmpGroupedTuples=list(grouped_tuples)
>>> tmpGroupedTuples_len=len(tmpGroupedTuples)
>>> for i in range(0,tmpGroupedTuples_len):
... cOuterTuple=list(tmpGroupedTuples[i])
... cOuterTupleLen=len(cOuterTuple)
... newOuterTuple=[]
... for j in range(0,cOuterTupleLen):
... cInnerTuple=list(cOuterTuple[j])
... newInnerTuple=((cInnerTuple[0],))
... newOuterTuple.append(newInnerTuple)
... tmpGroupedTuples[i]=tuple(newOuterTuple)
...
tmp_grouped_tuples
现在包含包含内部元组的外部元组,其中包含grouped_tuples
原始内部元组的第一个元素:
>>> print(tmpGroupedTuples)
[(('1321',), ('MessageXZY',), ('DescriptionSKS',), ('S7_6',), ('S7_3',)), (('0A3B',), ('MessageZYA',), ('DescriptionKAM',)), (('9K44',), ('MessageYAL',), ('DescriptionAUS',), ('S7_2',))]