Python中的命名字典

2 投票
3 回答
17083 浏览
提问于 2025-04-17 14:02

我查了一下怎么在Python中使用PHP的命名数组,发现了一个代码示例,他们说可以用字典来实现。

shows = [
   {"id": 1, "name": "Sesaeme Street"},
   {"id": 2, "name": "Dora The Explorer"},
]

来源:从这里获取的代码片段

参考资料:Python参考文档

但是我想知道怎么通过循环添加一个新值?参考资料里只展示了怎么通过简单的方式添加单个值,比如用['key']="value",但我不知道怎么把它们连接起来。有没有人能告诉我怎么通过循环把值添加到这个字典里?

例如:

for message in messages: 
            myvariable inside having two field
            - Message
            - Phone number

更新 我想知道怎么把它们循环出来,显示在把列表放进字典之后?谢谢!

3 个回答

0

简单来说,你可以使用(列表推导式)

message_informations = [{"message": m.message, "phone": m.phone} for m in messages]

如果你想给每条消息信息分配一个ID,并把它们存储在一个字典里(字典推导式)

{_id: {"message": m.message, "phone": m.phone} for _id, m in enumerate(messages)}
1

实际上,你的例子是一个字典的列表,用PHP的说法就是一个关联数组的数组。

如果你想添加一个项目,可以这样做:

shows.append({ "id" : 3, "name" : "House M.D."})

[]表示一个列表,或者说是一个数组。

{}表示一个字典,或者说是一个关联数组。

3

你应该把字典放进一个数组里,像这样:

friends = []
for message in messages:
  dict = {"message" : message.message, "phone" : message.phone }
  friends.append(dict)

如果想要再循环一次,可以这样做:

for friend in friends:
  print "%s - %s" % (friend["message"], friend["phone"])

撰写回答