我有点困惑为什么我的列表理解可以工作,而我的for循环却不行。
有人能解释一下我错过了什么吗?
sales = ['$1.21', '$7.29', '$12.52', '$5.13', '$20.39', '$30.82', '$1.85', '$17.98']
# When for-loop
loop_sales =[]
for sale in sales:
sale.strip("$")
loop_sales.append(sale)
print(loop_sales)
输出:【1.21美元、7.29美元、12.52美元、5.13美元、20.39美元、30.82美元、1.85美元、17.98美元】
# When list comprehension
list_sales = [sale.strip("$") for sale in sales]
print(list_sales)
输出:【1.21、7.29、12.52、5.13、20.39、30.82、1.85、17.98】
5条答案
按热度按时间x4shl7ld1#
strip
方法只是返回一个新值(实际上是处理后的输出),它根本不更改sale
变量。为了使它工作,请在常规for循环代码中尝试使用sale = sale.strip("$")
而不是sale.strip("$")
,或者就像Talha Tayyab在回答中所说的那样使用loop_sales.append(sale.strip('$'))
jjjwad0x2#
试试这个:
wkftcu5l3#
作为一个方法,
strip
并不改变字符串本身,它只是返回一个字符串的剥离版本,所以你可以用两种方法来处理这个问题:要么将返回的字符串保存为一个变量并附加该变量,要么附加sales.strip($)
就像这样版本1(另存为变量):
或版本2:
这完全取决于你是否会在后面的代码中使用这个变量,但我认为如果不使用的话,第二个版本会更好。
7bsow1i64#
strip
不会 * 改变 * 字符串,它返回剥离后的字符串。ibps3vxo5#