为什么我不能从列表中删除字符?另外为什么我甚至不能打印元素?

时间:2018-06-19 07:41:33

标签: python list for-loop

我对此代码有两个问题。 首先,它不会删除列表末尾的'\ n'。 所以我尝试打印 x 来查看发生了什么,但后来我遇到了第二个问题,即 x 没有打印出来。似乎有些换行符和'51'会打印出来,但为什么只有那些而不是其他换行符?

这怎么可能发生?我完全没有线索。

编辑: 这不是重复的。我想知道为什么它不会删除,但 ALSO 为什么它不会打印。 @ Aran-Fey在将其标记为重复之前阅读该问题。

row = ['\n', '2017-18 ', '\n', 'GSW', '\n', '\n', '51', '\n', '32.0', '\n', '26.4', '\n', '8.4', '\n', '16.9', '\n', '49.5', '\n', '4.2', '\n', '9.8', '\n', '42.3', '\n', '5.5', '\n', '5.9', '\n', '92.1', '\n', '0.7', '\n', '4.4', '\n', '5.1', '\n', '6.1', '\n', '3.0', '\n', '1.6', '\n', '0.2', '\n', '2.2', '\n', '43.8', '\n', '5', '\n', '0', '\n', '9.5', '\n']

i = 0
for x in row:
  print(i,":", x)
  if x in ('\n', '°', '%'):
    row.remove(x)
  i+=1
print(row)

这是

的输出
0 : 

1 : 

2 : 

3 : 51
4 : 

5 : 

6 : 

7 : 

8 : 

9 : 

10 : 

11 : 

12 : 

13 : 

14 : 

15 : 

16 : 

17 : 

18 : 

19 : 

20 : 

21 : 

22 : 

23 : 

24 : 

25 : 

26 : 

27 : 

['2017-18 ', 'GSW', '51', '32.0', '26.4', '8.4', '16.9', '49.5', '4.2', '9.8', '42.3', '5.5', '5.9', '92.1', '0.7', '4.4', '5.1', '6.1', '3.0', '1.6', '0.2', '2.2', '43.8', '5', '0', '9.5', '\n']

您可以在此处运行此代码:https://repl.it/@leonardchoo/listnotworking

2 个答案:

答案 0 :(得分:1)

试试这个,

spark = SparkSession \
        .builder \
        .appName("...") \
        .config("spark.sql.shuffle.partitions", 1000)

<强>输出

row = ['\n', '2017-18 ', '\n', 'GSW', '\n', '\n', '51', '\n', '32.0', '\n', '26.4', '\n', '8.4', '\n', '16.9', '\n', '49.5', '\n', '4.2', '\n', '9.8', '\n', '42.3', '\n', '5.5', '\n', '5.9', '\n', '92.1', '\n', '0.7', '\n', '4.4', '\n', '5.1', '\n', '6.1', '\n', '3.0', '\n', '1.6', '\n', '0.2', '\n', '2.2', '\n', '43.8', '\n', '5', '\n', '0', '\n', '9.5', '\n']

row = [x for x in row if x not in ['\n', '°', '%']]

for i, x in enumerate(row):
    print(i, x)

答案 1 :(得分:0)

row = ['\ n','2017-18','\ n','GSW','\ n','\ n','51','\ n','32 .0',' \ n','26 .4','\ n','8.4','\ n','16 .9','\ n','49 .5','\ n','4.2','\ n',' 9.8','\ n','42 .3','\ n','5.5','\ n','5.9','\ n','92 .1','\ n','0.7','\ n','4.4','\ n','5.1','\ n','6.1','\ n','3.0','\ n','1.6','\ n','0.2 ','\ n','2.2','\ n','43 .8','\ n','5','\ n','0','\ n','9.5','\ n “] removeElement = [ “\ n” 个, '°', '%'] 列表中的i(行):     如果我在removeElement中:         row.remove(ⅰ) 打印(行)