如何从我的列表 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]))
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]))