如何从 Python 中的列表中删除字符串

how to remove a string from a list in Python

列表的第一个元素是字符串,其余是数字。我想在数字之间执行数学运算,如中位数等,但我无法删除第一个元素 a.k.a 字符串,因为我不断收到此错误

AttributeError: 'str' object has no attribute 'pop'

我尝试了 pop、remove 等

with open('/Users/solidaneziri/Downloads/Data_Exercise_1.txt') as infile:
    for line in infile:
        alter = line.split()[0]
        alter.pop()
        statistics.median(alter)

print(Alter)

Alter
28
25
28
26
22
20
25
21
21
25
24
25
26
22
26
20
27
22
22
26
23
20
22
26
24
22
20
20
19
21
19
19
33
23
21
29
21
25
26
19
23
20
25
21

输入(改变) 输出 = 22.5 中位数

你可以这样使用:

import statistics
list_ = []
with open('1.txt') as infile:
    for line in infile:
        if line.split()[0].isdigit():
            list_.append(int(line.split()[0]))
statistics.median(list_)

您的错误是在 line.split()[0] 处获取了 List 的第一个元素。

如果每一行都由一个字符串和数字组成,而您只想删除第一个字符串,则应该这样做:

with open('/Users/solidaneziri/Downloads/Data_Exercise_1.txt') as infile:
    for line in infile:
        alter = line.split()
        alter.pop(0)
        statistics.median(line)

还请注意,您必须引入要删除的 List 位置的索引 pop()

直接跳过第一行。 next 消耗文件迭代器的一个元素:

import statistics

with open('/Users/solidaneziri/Downloads/Data_Exercise_1.txt') as infile:
    header = next(infile)
    data = [int(line.split()[0]) for line in infile]
print(statistics.median(data))

输出:

22.5

删除不包含 0 索引的字符串,然后将表示数字的字符串转换为实际的浮点数,以便在您的计算中使用它们。

with open('/Users/solidaneziri/Downloads/Data_Exercise_1.txt') as file:
    for line in file:
        numbers = line.split()[1:]
        numbers = map(float, numbers)
        statistics.median(numbers)

my_list = ["一"、"二"、"三"、"四"、"五"、"六"] 打印 (my_list)

假设我想要删除一和四

my_list.pop(3) my_list.pop(0) 打印(my_list)

#输出将是

[“二”、“三”、“五”、“六”]

test_list = ["bad", 2, 4, 6 ,1, 3] 

print ("Original list : " + str(test_list)) 
R = "bad"
while(R in test_list) : 
    test_list.remove(R) 
print ("List after removing string " + str(test_list))