列表理解与循环——我不明白什么?
List comprehension vs loop - what do i not understand?
我有点困惑为什么我的列表理解有效,但我的 for 循环却无效。
有人可以解释一下我在这里缺少什么吗?
sales = ['.21', '.29', '.52', '.13', '.39', '.82', '.85', '.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']
strip
不会 更改 字符串,它 returns 剥离的字符串。
试试这个:
sales = ['.21', '.29', '.52', '.13', '.39', '.82', '.85', '.98']
# When for-loop
loop_sales =[]
for sale in sales:
loop_sales.append(sale.strip("$"))
print(loop_sales)
#output
['1.21', '7.29', '12.52', '5.13', '20.39', '30.82', '1.85', '17.98']
strip
方法只是 returns 一个新值(实际上是处理后的输出),它根本不会改变这里的 sale
变量。为了使其正常工作,请在正常的 for 循环代码中尝试使用 sale = sale.strip("$")
而不是 sale.strip("$")
,或者像 Talha Tayyab 在他的回答
中所说的那样使用 loop_sales.append(sale.strip('$'))
loop_sales =[]
for sale in sales:
loop_sales.append(sale.strip("$"))
print(loop_sales)
作为一种方法,strip
不会更改字符串本身,它只是 returns 字符串的剥离版本。所以你可以通过两种方式来解决这个问题。将返回的字符串保存为变量并追加该变量或追加 sales.strip($)
像这样:
版本 1(保存为变量):
sales = ['.21', '.29', '.52', '.13', '.39', '.82', '.85', '.98']
# When for-loop
loop_sales =[]
for sale in sales:
a= sale.strip("$")
loop_sales.append(a)
print(loop_sales)
或版本 2:
sales = ['.21', '.29', '.52', '.13', '.39', '.82', '.85', '.98']
# When for-loop
loop_sales =[]
for sale in sales:
loop_sales.append(sale.strip("$"))
print(loop_sales)
这完全取决于您稍后是否会在代码中使用该变量,但如果不使用,我认为第二个版本更好。
我有点困惑为什么我的列表理解有效,但我的 for 循环却无效。
有人可以解释一下我在这里缺少什么吗?
sales = ['.21', '.29', '.52', '.13', '.39', '.82', '.85', '.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']
strip
不会 更改 字符串,它 returns 剥离的字符串。
试试这个:
sales = ['.21', '.29', '.52', '.13', '.39', '.82', '.85', '.98']
# When for-loop
loop_sales =[]
for sale in sales:
loop_sales.append(sale.strip("$"))
print(loop_sales)
#output
['1.21', '7.29', '12.52', '5.13', '20.39', '30.82', '1.85', '17.98']
strip
方法只是 returns 一个新值(实际上是处理后的输出),它根本不会改变这里的 sale
变量。为了使其正常工作,请在正常的 for 循环代码中尝试使用 sale = sale.strip("$")
而不是 sale.strip("$")
,或者像 Talha Tayyab 在他的回答
loop_sales.append(sale.strip('$'))
loop_sales =[]
for sale in sales:
loop_sales.append(sale.strip("$"))
print(loop_sales)
作为一种方法,strip
不会更改字符串本身,它只是 returns 字符串的剥离版本。所以你可以通过两种方式来解决这个问题。将返回的字符串保存为变量并追加该变量或追加 sales.strip($)
像这样: 版本 1(保存为变量):
sales = ['.21', '.29', '.52', '.13', '.39', '.82', '.85', '.98']
# When for-loop
loop_sales =[]
for sale in sales:
a= sale.strip("$")
loop_sales.append(a)
print(loop_sales)
或版本 2:
sales = ['.21', '.29', '.52', '.13', '.39', '.82', '.85', '.98']
# When for-loop
loop_sales =[]
for sale in sales:
loop_sales.append(sale.strip("$"))
print(loop_sales)
这完全取决于您稍后是否会在代码中使用该变量,但如果不使用,我认为第二个版本更好。