【问题标题】:Choosing item in specific place from list of lists从列表列表中选择特定位置的项目
【发布时间】:2019-05-16 03:12:03
【问题描述】:

我有列表列表:

my_list = [['abc','defg','hij'],['klm','nopqrs','tuvw'],['xy','zabc','def'],['ghij','klmnop','qrs']]

我想从所有列表中选择随机列表并在第二个位置打印字符串。

我试过了:

for item in my_list:
    print(random.sample(item[1],len(item[1]))

【问题讨论】:

  • 不要使用python关键字list作为变量名。您需要在列表级别进行随机选择,并访问所选内容的第二个元素。相反,您在 item 级别上执行此操作,因此收到 1 个字母。
  • 这些是字符串(“abc”、“defg”....)吗?还要修正您的拼写错误 (choise) 和格式:stackoverflow.com/editing-help
  • 是的,只有字符串
  • 如果你想打印 one 随机选择的列表中的第二个字符串,那么为什么你的print 在一个循环中呢?还有为什么要引用item[3](不是第二个字符串)?

标签: python list loops random


【解决方案1】:
my_list = [['abc','defg','hij'],['klm','nopqrs','tuvw'],['xy','zabc','def'],['ghij','klmnop','qrs']]
import random
print (random.choice(my_list)[1])

【讨论】:

    【解决方案2】:

    只需使用random.randintrandom.choicemy_list 中选择一个随机索引。这个:

    from random import randint
    list_choice = my_list[randint(0, len(my_list-1))]
    

    还有这个:

    from random import choice
    list_choice = choice(my_list)
    

    将使list_choice 具有来自my_list 的随机值。然后您可以执行此操作以打印列表中的第二个值:

    print(list_choice[1])
    

    为了使数字看起来更随机,您可以使用random.seedtime.time 将随机种子设置为当前时间:

    import random
    import time
    
    random.seed(time.time())
    

    完成所有这些之后,完整的代码应该是这样的:

    import random
    import time
    
    my_list = [['abc','defg','hij'],['klm','nopqrs','tuvw'],
               ['xy','zabc','def'],['ghij','klmnop','qrs']]
    
    random.seed(time.time())
    list_choice = random.choice(my_list)
    
    print(list_choice[1])
    

    【讨论】:

    • 在我从所有列表中选择了一个随机列表后,我无法选择列表中的第二项。我将其识别为 1 个字符串。
    • @Sig 当你尝试这样做时会发生什么?
    • IndexError: 列表索引超出范围
    【解决方案3】:

    不要重复。选择一个随机索引并在该索引处显示您的字符串结果。

    import random
    my_list = [['abc','defg','hij'],['klm','nopqrs','tuvw'],['xy','zabc','def'],['ghij','klmnop','qrs']]
    random_index = random.randint(0, len(my_list) - 1) # will generate random index from range 0 to 3
    word_index = 1
    my_list [random_index][word_index]
    

    【讨论】:

      【解决方案4】:

      让我们分解一下。这是列表列表:

      my_lists = [
          ['abc', 'defg', 'hij'],
          ['klm', 'nopqrs', 'tuvw'],
          ['xy', 'zabc', 'def'],
          ['ghij', 'klmnop', 'qrs']
      ]
      

      我想从所有列表中随机选择一个列表

      chosen_list = random.choice(my_lists)
      

      ...并在第二个位置打印字符串。

      print(chosen_list[1]) # remember Python uses zero-based indexing
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2021-06-10
        • 1970-01-01
        • 1970-01-01
        • 2016-03-27
        • 1970-01-01
        • 1970-01-01
        • 2018-01-25
        • 1970-01-01
        相关资源
        最近更新 更多