Python 输入到列表中的元组

Python 输入到列表中的元组,python,list,tuples,Python,List,Tuples,我试图将用户的输入转换成一个进入列表的元组。我正在使用split方法,但它似乎接受了输入并在列表中创建了一个元组,但也在列表中创建了另一个元组本身…我希望这是有意义的…无论如何,我在visualizer中运行了它,看到它将以0和1的索引同时出现,所以我想我有一个小细节 简言之: 输入员工的姓名。(最后,第一) 这个姓,名被转换成元组并发送到 名单 我认为一个有两个值的员工列表作为列表中的元组会更好,对吗?如果我刚离开,请告诉我,最好是列个简单的清单。 不管怎样,代码如下: empList = [

我试图将用户的输入转换成一个进入列表的元组。我正在使用split方法,但它似乎接受了输入并在列表中创建了一个元组,但也在列表中创建了另一个元组本身…我希望这是有意义的…无论如何,我在visualizer中运行了它,看到它将以0和1的索引同时出现,所以我想我有一个小细节

简言之: 输入员工的姓名。(最后,第一) 这个姓,名被转换成元组并发送到 名单

我认为一个有两个值的员工列表作为列表中的元组会更好,对吗?如果我刚离开,请告诉我,最好是列个简单的清单。 不管怎样,代码如下:

empList = []
empName = input("Please enter employee name. (Last name, First name):\n")
nameSplit = tuple(empName.split(","))
empList += nameSplit
salary = float(input("Please enter salary for " +str(empList[0:]) + ":\n" ))
grossSalary = salary

if (grossSalary > 100000):
    fedTax = (grossSalary * .2)
else:
    fedTax = (grossSalary * .15)

stateTax = (grossSalary * .05)
netSalary = (grossSalary - (fedTax + stateTax))

print('''\nGross Salary: {0:>5.2f} \n 
Federal Tax: {minus:>2}{1:>6.2f} \n 
State Tax: {minus:>4}{2:>4.2f} \n 
Net Salary: {3:>10.2f}'''.format(grossSalary, fedTax, stateTax, netSalary,
minus = "-"))

下面是一个实际代码的示例会话(python3)

因此,我唯一要做的修改是

salary = float(input("Please enter salary for " + empList[1] + " " + empList[0] + ":\n" ))
除非您的注释
input=(Payne,Max)
,否则您是否希望用户输入括号?这将在列表中生成元组。无论如何,在您的程序中,
empList
可以是元组或列表,这并不重要

empList = []
empName = input("Please enter employee name. (Last name, First name):\n")
nameSplit = tuple(empName.split(","))
empList += nameSplit
最后一行
empList+=nameSplit
将元组中的每个项添加到列表中。它不会添加元组本身:

>>> l = [1, 2, 3]
>>> l += (4, 5)
>>> l
[1, 2, 3, 4, 5]
您应该改用
list.append()

empList.append(nameSplit)
现在它将附加元组:

>>> empList = []
>>> empName = 'Lastname, Firstname'
>>> nameSplit = tuple(empName.split(","))
>>> empList.append(nameSplit)
>>> empList
[('Lastname', ' Firstname')]

>>> empName = 'Else, Someone'
>>> nameSplit = tuple(empName.split(","))
>>> empList.append(nameSplit)
>>> empList
[('Lastname', ' Firstname'), ('Else', ' Someone')]
还有一件事。在使用
拆分的字符串中保留空格。在将每个字符串添加到列表中之前,您应该先删除它,而实际上不需要中间变量:

empList.append(tuple(s.strip() for s in empName.split(",")))

请给出一个输入、期望输出和当前输出的示例。您期望的最终数据结构是什么?你的代码目前运行正常,但我不确定你到底想实现什么。input=(Payne,Max)@ChrisAvina这没有帮助。我运行了你的代码,它正在运行。请提供应用程序的预期最终输出,并解释其不符合要求的原因。@idjaw input=(Payne,Max),它返回字符串“Payne,Max”Payne,Max,将其拆分、转换为元组,然后发送该元组(“Payne”,“Max”)发送到列表。代码确实正常工作,但当我在可视化工具中运行它时,它将元组显示为索引0、1,并在我的列表中分别将(“Payne”、“Max”)显示为索引0、1。在我看来,这似乎是在我的列表中创建元组,但也创建了相同的副本(“Payne”、“Max”)作为我清单中另外两个单独的项目,我想这更像是一个技术清晰的问题。这有意义吗?
empList.append(tuple(s.strip() for s in empName.split(",")))