如何将用户输入的内容附加到列表和字典中,并在python中用delimeter(;;)分隔?
如何使函数向字典和列表添加/附加更多值如何将用户输入的内容附加到列表和字典中,并在python中用delimeter(;;)分隔?,python,list,dictionary,Python,List,Dictionary,如何使函数向字典和列表添加/附加更多值 myDict = {'Name': ['Daniel', 'Melissa', 'Vicky', 'Winona'], 'Tribe': ['Bataknese', 'Javanese', 'Bataknese', 'Javanese'], 'Town': ['Indramayu', 'Jakarta', 'Jakarta', 'Batam'], 'Username': ['dan.iel', 'mel
myDict = {'Name': ['Daniel', 'Melissa', 'Vicky', 'Winona'],
'Tribe': ['Bataknese', 'Javanese', 'Bataknese', 'Javanese'],
'Town': ['Indramayu', 'Jakarta', 'Jakarta', 'Batam'],
'Username': ['dan.iel', 'melissaaaa', 'vic.ky', 'weenonuhh']}
myList = [['Daniel', 'Bataknese', 'Indramayu', 'dan.iel'],
['Melissa', 'Javanese', 'Jakarta', 'melissaaaa'],
['Vicky', 'Bataknese', 'Jakarta', 'vic.ky'],
['Winona', 'Javanese', 'Batam', 'weenonuhh']]
那么,myDict和我的列表应该是这样的:
def add(something):
....
add('Clara Angela;;;Balinese;;;Bali;;;clara123')
下面是一段代码:
myDict = {'Name': ['Daniel', 'Melissa', 'Vicky', 'Winona','Clara Angela'],
'Tribe': ['Bataknese', 'Javanese', 'Bataknese', 'Javanese','Balinese'],
'Town': ['Indramayu', 'Jakarta', 'Jakarta', 'Batam','Bali'],
'Username': ['dan.iel', 'melissaaaa', 'vic.ky', 'weenonuhh','clara123']}
myList = [['Daniel', 'Bataknese', 'Indramayu', 'dan.iel'],
['Melissa', 'Javanese', 'Jakarta', 'melissaaaa'],
['Vicky', 'Bataknese', 'Jakarta', 'vic.ky'],
['Winona', 'Javanese', 'Batam', 'weenonuhh'],
['Clara Angela', 'Balinese', 'Bali', 'clara123']]
输出将是:
myDict = {'Name': ['Daniel', 'Melissa', 'Vicky', 'Winona'],
'Tribe': ['Bataknese', 'Javanese', 'Bataknese', 'Javanese'],
'Town': ['Indramayu', 'Jakarta', 'Jakarta', 'Batam'],
'Username': ['dan.iel', 'melissaaaa', 'vic.ky', 'weenonuhh']}
def add ( Name, Tribe, Town, Username):
myDict["Name"].append(Name)
myDict["Tribe"].append(Tribe)
myDict["Town"].append(Town)
myDict["Username"].append(Username)
add("Clara Angela","Balinese","Bali","clara123")
print(myDict)
但是,如果输入应按您要求的方式进行,则将代码修改为:
{'Name': ['Daniel', 'Melissa', 'Vicky', 'Winona', 'Clara Angela'],
'Tribe': ['Bataknese', 'Javanese', 'Bataknese', 'Javanese', 'Balinese'],
'Town': ['Indramayu', 'Jakarta', 'Jakarta', 'Batam', 'Bali'],
'Username': ['dan.iel', 'melissaaaa', 'vic.ky', 'weenonuhh', 'clara123']}
你可以做:
myDict = {'Name': ['Daniel', 'Melissa', 'Vicky', 'Winona'],
'Tribe': ['Bataknese', 'Javanese', 'Bataknese', 'Javanese'],
'Town': ['Indramayu', 'Jakarta', 'Jakarta', 'Batam'],
'Username': ['dan.iel', 'melissaaaa', 'vic.ky', 'weenonuhh']}
def add (i):
j=i.split(";;;")
myDict["Name"].append(j[0])
myDict["Tribe"].append(j[1])
myDict["Town"].append(j[2])
myDict["Username"].append(j[3])
add(i)
print(myDict)
假设顺序是正确的;使用
str.split
并将其附加到myList
,然后只需循环myDict.values()
附加每个值(zip
将非常方便):
结果:
myDict
def add(data):
data = data.split(';;;')
myList.append(data)
for l, v in zip(myDict.values(), data):
l.append(v)
add('Clara Angela;;;Balinese;;;Bali;;;clara123')
{'Name': ['Daniel', 'Melissa', 'Vicky', 'Winona', 'Clara Angela'],
'Town': ['Indramayu', 'Jakarta', 'Jakarta', 'Batam', 'Bali'],
'Tribe': ['Bataknese', 'Javanese', 'Bataknese', 'Javanese', 'Balinese'],
'Username': ['dan.iel', 'melissaaaa', 'vic.ky', 'weenonuhh', 'clara123']}
myList
def add(data):
data = data.split(';;;')
myList.append(data)
for l, v in zip(myDict.values(), data):
l.append(v)
add('Clara Angela;;;Balinese;;;Bali;;;clara123')
{'Name': ['Daniel', 'Melissa', 'Vicky', 'Winona', 'Clara Angela'],
'Town': ['Indramayu', 'Jakarta', 'Jakarta', 'Batam', 'Bali'],
'Tribe': ['Bataknese', 'Javanese', 'Bataknese', 'Javanese', 'Balinese'],
'Username': ['dan.iel', 'melissaaaa', 'vic.ky', 'weenonuhh', 'clara123']}
如果您没有使用Python 3.X,其中dict是有序的,那么操作符.itemgetter
是您的下一个最佳选择:
[['Daniel', 'Bataknese', 'Indramayu', 'dan.iel'],
['Melissa', 'Javanese', 'Jakarta', 'melissaaaa'],
['Vicky', 'Bataknese', 'Jakarta', 'vic.ky'],
['Winona', 'Javanese', 'Batam', 'weenonuhh'],
['Clara Angela', 'Balinese', 'Bali', 'clara123']]
请告诉我们你到目前为止做了什么。我们应该帮助你,而不是为你做作业。你应该强烈考虑改变你的数据结构。目前,您的代码需要跟踪
myDict
值中的索引。为什么不简单地列一个目录呢<代码>[{'name':'Daniel','Tribe':'Bataknese,…},{'name':'Melissa','Tribe':'Javanese',…},{'name':'Vicky','Tribe':'Bataknese',…},…},。然后一切都变得更加琐碎这可能会有所帮助