我已经完成了以下代码,以便用用户输入填充元组,然后添加元组的元素。例如,给出输入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)当我添加代码的第二部分(添加)时,当我按下回车而不是导致程序中断时,它继续问我“输入两个整数”
谢谢!
答案 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
map(int,...)
将字符串转换为整数。另请注意,原始代码中存在错误。 myinput.split(",")
是表达式,而不是赋值。要更改myinput
的值,您必须说myinput = myinput.split(...)
。 map(sum,...)
将总和应用于mytuple
。