Python noob在这里。我有一个表示为字符串的数字列表。单个数字用零表示,我试图摆脱零。例如,['01','21','03']应为['1','21','3']。
我目前的解决方案似乎有点笨拙:
for item in list:
if item[0] == '0':
list[list.index(item)] = item[1]
我想知道为什么这不起作用:
for item in list:
if item[0] == '0':
item = item[1]
答案 0 :(得分:4)
重新绑定迭代名称不会改变列表。
此外:
>>> [str(int(x, 10)) for x in ['01', '21', '03']]
['1', '21', '3']
答案 1 :(得分:3)
您可以尝试剥离零:
>>> map(lambda x: x.lstrip('0'), ['001', '002', '030'])
['1', '2', '30']
答案 2 :(得分:3)
改变名单:
for i, item in enumerate(mylist):
if item.startswith('0'):
mylist[i] = item[1:]
更好的可能只是创建一个新列表:
new_list = [x.lstrip('0') for x in mylist]
您的代码不起作用,因为分配给item
只会给名称item
一个新值,它对item
的旧值没有任何作用。
答案 3 :(得分:-1)
代码“item”是一个变量,它在您遍历列表时包含项目的值。它没有引用列表本身。
您的第一个解决方案非常慢,因为它必须在列表中搜索每个项目才能找到索引。
有关如何完成所需内容的示例,请参阅其他答案。