Python 3.4.2列表添加

时间:2015-01-11 06:52:52

标签: python list python-3.x addition

我是Python和编程的新手。 我应该在列表中添加前7个数字

grades = [ '9', '7', '7', '10', '3', '9', '6', '6', '2' ]

所以我写了这段代码:

print("1.", grades[0] + grades [1] + grades [2] + grades [3] + grades [4] + grades[5] + grades[6] )

但它只打印出“97710396” 这是刚刚打印出来的数字,因为它是一个没有空格的索引。如何添加它们以便我可以打印51?

7 个答案:

答案 0 :(得分:1)

没有给出太多的东西......列表中的“数字”实际上是string s,而python允许你通过将它们连接在一起来添加字符串。因此'a' + 'b' + '9'会为您提供'ab9'。您需要将这些string转换为int作为int('19'),因此int('9') + int('7')16

答案 1 :(得分:1)

将所有内容转换为整数,总结您需要的内容,打印出来:

print("1.",sum(map(int, grades[:7])))

答案 2 :(得分:0)

您需要将字符串转换为int来进行数字运算(而不是字符串连接):

grades = ['9', '7', '7', '10', '3', '9', '6', '6', '2']
grades = [int(x) for x in grades]
print("1.", grades[0] + grades[1] + grades[2] + grades[3] +
            grades[4] + grades[5] + grades[6])

或者,将sum与列表切片一起使用(如果要添加的项目是连续项目,则非常有用)

grades = ['9', '7', '7', '10', '3', '9', '6', '6', '2']
grades = [int(x) for x in grades]
print("1.", sum(grades[:7]))

答案 3 :(得分:0)

这些是单独的字符串。你不能对字符串做数学。

对字符串执行+时会发生什么情况称为字符串连接。

即。 '1'+'2'将生成'12'而非'3'

您需要使用int()将这些转换为整数才能执行算术。

var result = int('1') + int('2')
>> 3

所以要么

print("1.", int(grades[0]) + int(grades [1]) + int(grades [2]) + int(grades [3]) + int(grades [4]) + int(grades[5]) + int(grades[6]) )

list slicingsum

的时髦列表理解
grades = [int(x) for x in grades]
print("1.", sum(grades[:7]))

答案 4 :(得分:0)

sum = 0
for i in range(0,7):
    sum += int(grades[i])
print(sum)

答案 5 :(得分:0)

列表grades[]包含字符串变量。整数是整数。您需要将grades[]列表中的值更改为整数。为此,您需要删除grades[]中值的引号。然后它将输出该列表中所有数字的总和。 希望这会有所帮助。

答案 6 :(得分:-1)

您可以将reducelambda一起使用,

>>> print( "1.",reduce(lambda x,y:int(x)+int(y),grades[:7]))

当您使用python 3.x标记此问题时,reduce现在是functools模块的一部分。

import functools
print( "1.",functools.reduce(lambda x,y:int(x)+int(y),grades[:7]))