2017-03-12 38 views
0

初学者的问题。Python:用单个数字替换嵌套列表

我有以下的有序列表与嵌套列表,

original_list=[['No', 'se', 'puede'], ['No', 'se', 'puede'], ['No', 'se', 'admiten']] 

我想换成嵌套列表[“否”,“本质”,“admiten”]由一个单一的数字,即我要获得以下结果,

required_list=[['No', 'se', 'puede'], ['No', 'se', 'puede'], 'i'] 

其中我是任何数字。

因为实际的原始列表比较长,并且包含比上面给出的更多不同的嵌套列表,所以我想用“文本识别”命令替换['否','se','承认']。类似的,

[if nested list contains 'No', 'se', 'admiten', replace by i] 

这样我就可以用一个数字代替任意数量的字符串元素组成的任何嵌套列表。

+0

'original_list [-1] =“i''? – zvone

+0

您需要澄清*您想要做什么以及*为什么*。我们需要上下文。 – skrx

+0

你说得对。我的错。我编辑了这个问题。希望现在更清楚。 – LucSpan

回答

0

是列表可以像列表元素不是列表,并查找和替换列表元素来处理可以使用轻松完成列表元素list comprehension

original_list=[['No', 'se', 'puede'], ['No', 'se', 'puede'], ['No', 'se', 'admiten']] 
item_to_replace = ['No', 'se', 'admiten'] 

required_list = ['i' if x == item_to_replace else x for x in original_list] 
+0

谢谢你的帮助! – LucSpan

0

我猜你想这样做:

original_list=[['No', 'se', 'puede'], ['No', 'se', 'puede'], ['No', 'se', 'admiten']] 

i = original_list[2] 

original_list=[['No', 'se', 'puede'], ['No', 'se', 'puede'], i] 
+0

@LucSpan检查我的编辑版本。 –

+0

我的歉意Ramesh,这不完全是我想要的。尽管如此,谢谢你和我一起思考。我意识到我的问题的原始版本缺乏足够的细节。我已经详细阐述了我想要的东西。 – LucSpan

0

original_list = [[ '否', 'SE', 'puede'],[ '否', 'SE', 'puede'],[ '否', 'SE',“允许']]

replace_value = ['否','se','允许']

为I,J在枚举(original_list):

if replace_value == j: 
    original_list[i] = 2 

打印original_list

+0

谢谢你的帮助! – LucSpan