【问题标题】:Selecting a random element from a certain range in a list - python从列表中的某个范围内选择一个随机元素 - python
【发布时间】:2015-06-23 02:00:39
【问题描述】:

我正在创建一个刽子手游戏,其中我有一个包含 5 个秘密单词的列表以及从文本文件中读取的每个单词的提示:

 list = ['word1', 'hint1', 'word2', 'hint2','word3', 'hint3','word4', 'hint4','word5', 'hint5']

我需要创建两个单独的列表,分别只包含秘密单词和提示。我该怎么做呢?

期望的结果:

words = ['word1','word2','word3','word4','word5']
hints = ['hint1','hint2','hint3','hint4','hint5']

【问题讨论】:

    标签: python list copying


    【解决方案1】:

    使用切片和步进符号生成两个列表,l[::2] 将从第一个元素开始步进 2 个元素,而 l[1::2] 也将从第 2 个元素开始步进 2 个元素:

    In [145]:
    
    l = ['word1', 'hint1', 'word2', 'hint2','word3', 'hint3','word4', 'hint4','word5', 'hint5']
    words = l[::2]
    hints = l[1::2]
    print(words)
    print(hints)
    ['word1', 'word2', 'word3', 'word4', 'word5']
    ['hint1', 'hint2', 'hint3', 'hint4', 'hint5']
    

    docs 对此进行详细说明

    【讨论】:

    • 我不知道切片里面可以有 4 个东西。我以为这只是开始结束和步骤。
    • 从 2.3 开始使用 python:docs.python.org/2.3/whatsnew/section-slices.html
    • @Ogen:这些都没有四个,它们都有三个。 l[1::2]l[start:(end):step]start=1end=Nonestep=2
    • @Ogen 它只是开始、结束和步骤——第四个是什么?
    • @EdChum 这正是我想要的。谢谢!
    猜你喜欢
    • 1970-01-01
    • 2023-01-11
    • 2011-05-29
    • 2014-02-07
    • 1970-01-01
    • 1970-01-01
    • 2017-05-11
    • 2014-07-28
    • 1970-01-01
    相关资源
    最近更新 更多