python在元组中添加元素

时间:2011-09-11 15:33:32

标签: python tuples

我已经完成了以下代码,以便用用户输入填充元组,然后添加元组的元素。例如,给出输入1,2和3,4我有元组: ((1,2),(3,4))。然后我想加1 + 2和3 + 4。

这是第一部可行的方法:

data=[]
mytuple=()

while True:
    myinput=raw_input("Enter two integers: ")
    if not myinput:
        print("Finished")
        break
    else: 
        myinput.split(",")
        data.append(myinput)
        mytuple=tuple(data)
print(data)
print(mytuple)

然后,尝试像:

for adding in mytuple:
    print("{0:4d} {1:4d}".format(adding)) # i am not adding here,i just print

我有两个问题: 1)我不知道如何添加元素。 2)当我添加代码的第二部分(添加)时,当我按下回车而不是导致程序中断时,它继续问我“输入两个整数”

谢谢!

2 个答案:

答案 0 :(得分:1)

你需要:

myinput = myinput.split(",")

data.append( (int(myinput[0]), int(myinput[1])) )

for adding in mytuple:
    print("{0:4d}".format(adding[0] + adding[1]))

答案 1 :(得分:1)

使用内置map function

data=[]
mytuple=()

while True:
    myinput=raw_input("Enter two integers: ")
    if not myinput:
        print("Finished")
        break
    else: 
        myinput=map(int,myinput.split(","))                  # (1)
        data.append(myinput)
        mytuple=tuple(data)

print(data)
# [[1, 2], [3, 4]]
print(mytuple)
# ([1, 2], [3, 4])
print(' '.join('{0:4d}'.format(sum(t)) for t in mytuple))    # (2)
#    3    7
  1. 使用map(int,...)将字符串转换为整数。另请注意,原始代码中存在错误。 myinput.split(",")是表达式,而不是赋值。要更改myinput的值,您必须说myinput = myinput.split(...)
  2. 使用map(sum,...)将总和应用于mytuple
  3. 中的每个元组