【问题标题】:How do I add key randomly from a list and value from another list but on the same index number in a dictionary?如何从列表中随机添加键并从另一个列表中添加值但在字典中的相同索引号上?
【发布时间】:2019-07-16 12:48:51
【问题描述】:

所以我有两个列表,即州和首都。你可以猜到他们有州名和首都。此外,州列表中位置 0 的州首府位于首都列表中的位置 0。

我能够从状态列表中随机选择一个状态并将其存储在一个名为 s 的变量中。

我要做的是从大写字母列表中选择相应的大写字母并将其存储在一个名为 c 的变量中。

然后我计划通过以下方式将这些对添加到字典中 -

corrent_dict.update({s:c})
#correct_dict is the dictionary's name
#s and c are the previously mentioned variables

我不能做的是从大写列表中获取相应的大写名称。我需要这方面的帮助。

['Alabama', 'Alaska', 'Arizona']

是状态列表中的状态。

['Montgomery', 'Juneau', 'Phoenix']

是大写字母列表中的大写字母。

如您所见,州和大写字母按顺序匹配。

我使用s=(random.choice(states)) 将随机状态放入变量s。 我想要的是在c中有相应的资本。

所以如果s=Alabama的值那么我想要c=Montgomery的值

【问题讨论】:

  • 请发布示例输入和预期输出
  • corrent_dict[s] = c 可能比corrent_dict.update({s:c}) 更简单...
  • @Rakesh 我更新了问题。

标签: python-3.x list dictionary


【解决方案1】:

如果我正确阅读问题描述而不是选择索引,请不要选择状态。然后你可以同时得到州和首都:

import random

states = ['Alabama', 'Alaska', 'Arizona']
capitals = ['Montgomery', 'Juneau', 'Phoenix']

indx = random.choice(range(len(states)))

s, c = states[indx], capitals[indx]

print(s, c)

【讨论】:

    【解决方案2】:

    获取一个介于 1 和列表中状态数之间的随机整数:

    import random
    number_of_states = range(len(states_list))
    rand_num = random.randint(1, number_of_states)
    

    用rand_num将s和c分配给对应的州和首都:

    s = states_list[rand_num]
    c = capitals_list[rand_num]
    

    更新字典:

    corrent_dict.update({s:c})
    

    【讨论】:

      【解决方案3】:

      使用zip() 和random.choice():

      import random
      
      states = ['Alabama', 'Alaska', 'Arizona']
      capitals = ['Montgomery', 'Juneau', 'Phoenix']
      
      state, capital = random.choice([*zip(states, capitals)])
      print('State={} Capital={}'.format(state, capital))
      

      例如打印:

      State=Alabama Capital=Montgomery
      

      【讨论】:

        猜你喜欢
        • 2021-11-12
        • 2018-03-27
        • 1970-01-01
        • 2021-08-21
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2023-01-12
        • 1970-01-01
        相关资源
        最近更新 更多