如何从我的列表 python 3.2 中删除“ ”

How to remove ' ' from my list python 3.2

newlist=['21', '6', '13', '6', '11', '5', '6', '10', '11', '11', '21', '17', '23', '10', '36', '4', '4', '7', '23', '6', '12', '2', '7', '5', '14', '3', '10', '5', '9', '43', '38']

现在我想对这个列表做的是去掉每个整数周围的 ' ',问题是 split() 函数或 strip() 函数不起作用。所以我不知道如何删除它。帮助。

AttributeError: 'list' object has no attribute 'split' is given when I 运行.

然后我想求列表中每7个整数的和,我也不知道从哪里开始。任何帮助将不胜感激。

您可能正在寻找 python 的 map 函数:

oldlist = ['21', '6', '13', '6', '11', '5', '6', '10', '11', '11', '21', '17', '23', '10', '36', '4', '4', '7', '23', '6', '12', '2', '7', '5', '14', '3', '10', '5', '9', '43', '38']
newlist = list(map(int, oldlist))

print(type(newlist[0]))
print(newlist) 

并输出:

<class 'int'>

[21, 6, 13, 6, 11, 5, 6, 10, 11, 11, 21, 17, 23, 10, 36, 4, 4, 7, 23, 6, 12, 2, 7, 5, 14, 3, 10, 5, 9, 43, 38]

这种情况下可以使用地图;

new_list = list(map(int, newlist))

print(new_list) == [21, 6, 13, 6, 11, 5, 6, 10, 11, 11, 21, 17, 23, 10, 36, 4, 4, 7, 23, 6, 12, 2, 7, 5, 14, 3, 10, 5, 9, 43, 38]

您拥有的是一个字符串列表(因此是 ''s),您希望将它们转换为整数。无聊的题解是一个简单的for循环:

for i in range(len(newlist)):
    newlist[i] = int(newlist[i]

更紧凑的方法是列表理解,您可以在这里阅读:List Comprehensions:

newlist = [int(num) for num in newlist]

你提到的两个函数只对单个字符串起作用。

>>> "Hi my name is Bob".split(" ")
["Hi", "my", "name", "is", "Bob"]
>>> "GARBAGE This string is surrounded by GARBAGE".strip("GARBAGE")
" This string is surrounded by "

正如@Tomoko Sakurayama 提到的,您可以用另一个循环简单地求和。不过,如果您喜欢的话,可以使用另一种列表推导式(或者甚至将它叠加在旧的列表推导式之上,尽管那不是很 Pythonic :)。

[sum(newlist[i:i+7]) for i in range(0, len(newlist) - 6, 7)] + [sum(newlist[-(len(newlist) % 7):])]

这不起作用,因为它是一个字符串列表而不是整数。

 x = [int(x) for x in newlist]

这会将列表中的每个值都转换为 int。

Also After that I want to find the sum of each 7 integers in the list

^ 你能解释一下这是什么意思吗?这是直到列表末尾的每七个连续数字的总和吗?如果是这样,

sums = []
index = 0
for i in range(0, len(newlist), 7):
    sums[index] = sum(newlist[i : i + 7)])
    index += 1

编辑: 完整代码:

x = [int(x) for x in newlist]
sums = []
for i in range(0, len(x), 7):
    sums.append(sum(x[i : i + 7]))