如何将列表中的字符串转换为元组?
list1 = [['a', (1, 1)], ['a', (1, 2)], ['a', (1, 3)]]
想我需要更换第一“A”与(0,1)
,那么结果应该是:如何将列表中的字符串转换为元组?
[[(0,1), (1, 1)], ['a', (1, 2)], ['a', (1, 3)]]
我怎么能这样做?
简单地解决内部列表:
list1[0][0] = (0, 1)
第一个索引操作[0]
检索外部列表中的第一个元素,给你再申请另一索引操作,以获得包含列表的第一个元素。
>>> list1 = [['a', (1, 1)], ['a', (1, 2)], ['a', (1, 3)]]
>>> list1[0][0] = (0, 1)
>>> list1
[[(0, 1), (1, 1)], ['a', (1, 2)], ['a', (1, 3)]]
>>> my_list = [['a', (1, 1)], ['a', (1, 2)], ['a', (1, 3)]]
>>> for sublist in my_list:
if sublist[0] == 'a':
sublist[0] = (0, 1)
break
>>> my_list
[[(0, 1), (1, 1)], ['a', (1, 2)], ['a', (1, 3)]]
编辑:使这个回答这个问题(仅第一个“A”),并满足不高兴压痕客户 - 这里的一些行上下的代码:
for inner_list in list1:
for idx, elem in enumerate(inner_list):
if elem=='a':
inner_list[idx] = (0,1)
break
不,示例输出显示只有第一个'a'需要被替换。您的代码会替换所有*出现的'a'。 – 2012-07-30 11:15:18
我的错误 - 谢谢。 – 2012-07-30 11:17:30
@GuyAdini添加'break'并修复pascal缩进! – jamylak 2012-07-30 11:21:42
我不如果你不想循环某些东西,那么认为使用循环结构是一个好主意。 – MaxPowers 2012-07-30 11:17:23
@MaxPowers他说他想替换**第一个**''a'',所以我认为他的意思是一般意义上的。 – jamylak 2012-07-30 11:18:17
@MaxPowers:这个问题有足够的含糊不清,以使这个答案也是正确的;我的答案是最明显的正确答案*如果你知道第一个'a'所在的位置*。否则,jamylak通过搜索找到它是正确的。 – 2012-07-30 11:21:19