向列表添加值
我刚开始学R语言,想为我的漫画书建立一个简单的“数据库”。不过,我遇到了一些问题。
我的想法是把每个新的条目放成一个列表。我原本以为可以把列表设置成下面这样的样子。
[Thor, 50, Marvel]
[Thor, 51, Marvel]
[Thor, 52, Marvel]
...
eventually, I 'd like to include entries for story arc, writer, artist, etc.
但是,我用下面的代码来输入漫画时,发现每个新的条目只是被加到了列表的末尾。
option = 0
comicdb = []
while option != 3:
print "--------------------------"
print "1. Add a New Comic Book"
print "2. Print the Database"
print "3. Quit"
option = int(raw_input("Pick an Option: "))
if option == 1:
title = raw_input("Comic Book Title: ")
issue = int(raw_input("Issue Number: "))
publisher = raw_input("Publisher: ")
comicdb.append(title)
comicdb.append(issue)
comicdb.append(publisher)
print comicdb
运行代码几次后,列表看起来是这样的:
['Thor', 50, 'Marvel', 'Thor', 51, 'Marvel', 'Thor', 52, 'Marvel']
我猜可能有以下几个地方出错了,但我搞不清楚:
- append这个命令用错了
- 我应该用字典或元组,而不是列表
求助!
4 个回答
1
你需要一个包含多个列表的列表,或者一个包含多个字典的列表。
record = {}
record['title'] = raw_input("Comic Book Title: ")
record['issue'] = int(raw_input("Issue Number: "))
record['publisher'] = raw_input("Publisher: ")
comicdb.append(record)
print comicdb
4
你应该使用嵌套结构。
comicdb.append((title, issue, publisher))
4
这个答案很简单。你应该把3个单词直接插入到列表中,而不是把一个包含这3个单词的列表添加进去。
应该像这样:
option = 0
comicdb = []
while option != 3:
print "--------------------------"
print "1. Add a New Comic Book"
print "2. Print the Database"
print "3. Quit"
option = int(raw_input("Pick an Option: "))
if option == 1:
title = raw_input("Comic Book Title: ")
issue = int(raw_input("Issue Number: "))
publisher = raw_input("Publisher: ")
temp_list = []
temp_list.append(title)
temp_list.append(issue)
temp_list.append(publisher)
comicdb.append(temp_list)
print comicdb