[英]Converting all elements to strings in a list of list in Python
我有一个列表列表,其中包含整数和字符串作为它们的值。 现在我想将所有值转换为字符串。
我的列表列表如下所示:(比如final_rule
)
[[3, '*', 1, 4, 1], [1, 2, '*', 2, 1], ['*', '*', 3, 4, 1], [2, 2, '*', 2, 1]]
我正在尝试生成一个 output 作为:
[['3', '*', '1', '4', '1'], ['1', '2', '*', '2', '1'], ['*', '*', '3', '4', '1'], ['2', '2', '*', '2', '1']]
我正在尝试以下代码:
new_list=[]
for list_ in final_rule:
#print("list_:",list_)
[str(i) for i in list_]
new_list.append(i)
return new_list
int_list = [[3, '*', 1, 4, 1], [1, 2, '*', 2, 1], ['*', '*', 3, 4, 1], [2, 2, '*', 2, 1]]
# you can use nested loop like following.
str_list = [[str(i) for i in j] for j in int_list]
output
[['3', '*', '1', '4', '1'],
['1', '2', '*', '2', '1'],
['*', '*', '3', '4', '1'],
['2', '2', '*', '2', '1']]
你很接近,理解很好,但它不会就地修改列表。 它创建了一个新的。 所以你需要append
新列表:
def stringify(final_rule):
new_list=[]
for list_ in final_rule:
#print("list_:",list_)
strings = [str(i) for i in list_]
new_list.append(strings)
return new_list
但是你可以通过一个单一的理解来实现同样的目标:
def stringify(final_value):
return [[str(i) for i in inner] for inner in final_value]
或者,内部列表可以用list(map(str, inner))
构造,但我不确定什么会更快。
lst = [[3, '*', 1, 4, 1], [1, 2, '*', 2, 1], ['*', '*', 3, 4, 1], [2, 2, '*', 2, 1]]
list(list(map(str, terms)) for terms in lst)
这是使用 map() 和列表理解的一种方法。
a = [[3, '*', 1, 4, 1], [1, 2, '*', 2, 1], ['*', '*', 3, 4, 1], [2, 2, '*', 2, 1]]
result = [list(map(str,x)) for x in a]
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.