创建元组列表,元组元素作为输入

时间:2017-06-09 06:14:17

标签: python list input tuples

我希望创建一个列表,其成员是元组,取自控制台输入。我已经看到了其他关于元组和列表的问题。但是如何从输入创建元组并将它们追加到列表中,直到选择取元组元素为否,'n'?我尝试了以下代码。

"""
Create the tuples into a list.
"""

def createTupledList() :
    l=[]
    print("Add an element for the tuple ? y/n : ")
    ch=str(input())
    while(ch=='y') :
        print("Enter the tuple element : ")
        i=input()
        l=l.append(tuple(i))
        print("Add an element for the tuple ? y/n : ")
        ch=str(input())
    return l



l2=createTupledList()
print(l2)

请帮忙。

我的输入和错误输出:

C:\Users\vikranth\myproject\Python\Lists\Day 0>py tuplesortlist.py
Add an element for the tuple ? y/n :
y
Enter the tuple element :
1
Add an element for the tuple ? y/n :
y
Enter the tuple element :
2
Traceback (most recent call last):
  File "tuplesortlist.py", line 19, in <module>
    l2=createTupledList()
  File "tuplesortlist.py", line 12, in createTupledList
    l=l.append(tuple(i))
AttributeError: 'NoneType' object has no attribute 'append'

2 个答案:

答案 0 :(得分:2)

append()函数不会返回附加列表,它会返回NoneType,因为它会执行附加到位,因此您只需更改行:

l=l.append(tuple(i))

为:

l.append(tuple(i))

这应该有用。

答案 1 :(得分:0)

将多个元素添加到元组中并将多个元组添加到列表中的代码。

"""
Create the tuples into a list.
"""

def createTupledList() :
    l=[]
    while True:
      t=tuple()
      print("Add an element for the tuple ? y/n : ")
      if input()!='y':
        break
      else:
        print("Keep adding the tuple elements : (x to break)")
        while True:
          i=input()
          if i=='x':
            break
          else:
            t+=(i,)
          print(t)
        l.append(t)
    return l

l2=createTupledList()
print(l2)