情形1
for str in list1:
str = str.strip()
情形2
for i in range(0, len(list1)):
list1[i] = list1[i].strip()
在case1中,strip不起作用。
在case2中,strip工作。
1和2之间有什么区别?
答案 0 :(得分:1)
str = str.strip()
是本地循环变量str
的重新分配。列表引用的任何字符串对象将保持不变。字符串在Python中是不可变的。如果您希望字符串变量引用不同的字符串,则必须重新分配它们!
你的第一个循环大致相当于:
for i in range(0, len(list1)):
s = list1[i] # do not shadow the built-in str
s = s.strip()
这应该让列表更加清晰,为什么会更清楚。
答案 1 :(得分:0)
你可以将python默认关键字作为变量名称