将值附加到列表中并生成内部列表

时间:2015-12-10 16:42:13

标签: python list

所以,我有一个像

这样的清单
['sm', 'Bug Out Bag']

如何制作像

这样的清单
[['sm', 'The label I entered'], ['Bug Out Bag', 'Another label I entered']]

通过input函数输入标签?

我试过这段代码:

if action_choice_perform_bag in str(bag_actions[2]):
    for b in my_bag:
        apply_label_to_front = input('What label would you like to apply to front of bag? e.g. 30.0\n')
        my_bag[b].append(apply_label_to_front)
        # print(my_bag)   contains::: ['sm', 'Bug Out Bag']

但它抱怨my_bag[b]中的integer不是JAVA_OPTS="-Djava.awt.headless=true -Dfile.encoding=UTF-8 -server -Xms512m -Xmx1024m -XX:NewSize=256m -XX:MaxNewSize=256m -XX:PermSize=256m -XX:MaxPermSize=256m -XX:+DisableExplicitGC",而不是# # LOGGING_MANAGER (Optional) Override Tomcat's logging manager # Example (all one line) # LOGGING_MANAGER="-Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager" # # $Id: catalina.sh 1146069 2011-07-13 14:47:32Z markt $ # ----------------------------------------------------------------------------- JAVA_OPTS="-Djava.awt.headless=true -Dfile.encoding=UTF-8 -server -Xms512m -Xmx1024m -XX:NewSize=256m -XX:MaxNewSize=256m -XX:PermSize=256m -XX:MaxPermSize=256m -XX:+DisableExplicitGC" # OS specific support. $var _must_ be set to either true or false. cygwin=false darwin=false os400=false case "`uname`" in CYGWIN*) cygwin=true;; Darwin*) darwin=true;; OS400*) os400=true;; esac

2 个答案:

答案 0 :(得分:1)

你可以这样做:

list_of_lists = [ [b, input('What label?')] for b in my_bag ]

也就是说,使用列表推导来创建一个新列表,其中包含包含原始列表中元素的列表和来自用户的字符串。

答案 1 :(得分:0)

只是一些变化:

for item in my_bag:
    apply_label_to_front = input('What label would you like to apply to front of bag? e.g. 30.0\n')
    item.append(apply_label_to_front)

my_bag作为带压缩的字典:

bag_names = ['sm', 'Bug Out Bag']
prompt = 'What label would you like to apply to front of bag? e.g. 30.0\n'
my_bag = {name: input(prompt) for name in bag_names}