我对Python相对较新,并且很难提出一种方法来完成以下工作。目前,我有一个元组列表(大于list_one
,这些元组内的元素为1)一个元组,以及2)一个字符串(这些字符串总是两个值中的一个:例如'A'
或'B'
(也可以是'D'
。或者'Z'
,或者任何其他两个字符串)内的元组包括'id'
和值的list
(串):组合元组列表中的元组元素。元组元素是元组和列表
list_one = [(('id1', ['v1', 'v2']), 'A'), (('id2', ['v3', 'v4', 'v5', 'v6']), 'A'), (('id3', ['v11']), 'B'), (('id4', ['v12', 'v13']), 'B'), (('id5', ['v14', 'v16']), 'B'), (('id6', ['v17', 'v18', 'v21']), 'A')]
我想,没有成功,创建一个新的列表如下所示:
new_list1 = [('id1',['v1', 'v2', 'v3', 'v4', 'v5', 'v6']), ('id3',['v11', 'v12', 'v13', 'v14', 'v16']), ('id6',['v17', 'v18', 'v21'])]
当字符串值(A,B)改变它应该创建一个新的元组,第一个元素是A,B改变的初始元组的id,第二个元素是初始列表中的值列表(“v's”)。字典也可以罚款,例如:
new_list2 = [{'id1': ['v1','v2', 'v3', 'v4', 'v5', 'v6']}, {'id3':['v11', 'v12', 'v13', 'v14', 'v16']}, {'id6':['v17', 'v18', 'v21']}]
我很感激任何指导。
编辑:
s = list_one[0][1]
for tup in list_one:
if s in tup:
new_list.extend(tup[0][1])
else:
new_list.append(tup[0][1])
给出:
['v1', 'v2', 'v3', 'v4', 'v5', 'v6', ['v11'], ['v12', 'v13'], ['v14', 'v16'], 'v17', 'v18', 'v21']
这是不是真的就是我要找的,因为这会产生一个 'A' 值围绕一个列表,列表“ B'里面。
向我们展示您的代码... –
欢迎来到Stackoverflow!准确地说:a)到目前为止你所尝试的是什么(展示一个**最小完整的可验证示例**)b)你卡在哪里(再次显示代码)。 – SuperSaiyan
啊,只是看到你的意见。感谢SuperSaiyan;)老实说,我不确定如何处理这个问题。我已经尝试了很多东西,例如见主帖子中的编辑。似乎不是一个非常困难的问题,但不知何故不能想出一个好方法来处理1)获取在相同列表中具有相同“id”的相邻“v”,然后创建一个新列表与第二个“id”的“v”相关联。 – PDavis