获取列表第n个元素的第2,第3和第4个字母

时间:2017-11-06 20:25:09

标签: python python-3.x

我有一个包含以下元素的列表:' rainbow ' = [' red &# 39;,' ',' 黄色',' 绿色& #39;,' 蓝色',' 靛蓝',' ']

我想要列表中一个元素的第二,第三和第四个字母,在这种情况下,' orange '。所以最后,我应该 &#39>。

到目前为止,我只使用此代码获得了所有元素的第2,第3,第4个字母:

for i in rainbow:
       print(i[1:4]),

4 个答案:

答案 0 :(得分:2)

你有点困惑。如果您只想检索 单个元素的第2-4个字母,则无需循环 。识别所述元素的索引,并使用列表索引访问它。在您的情况下,您希望元素位于 第一个 索引(列表为零索引):

>>> rainbow = ['red','orange','yellow','green','blue','indigo','violet']
>>> rainbow[1][1:4]
'ran'

如果您想 找到 列表中符合特定条件的元素并打印其中的第2-4个字母(那些),您可以在for循环中使用条件语句:

>>> rainbow = ['red','orange','yellow','green','blue','indigo','violet']
>>> for i in rainbow:
    if i == 'orange':
            print(i[1:4])


ran

答案 1 :(得分:1)

如果您正在寻找一个您不知道索引的通用解决方案,因为它是一个列表,您需要找到相应的索引。所以,这是一个解决方案:

rainbow =['red','orange','yellow','green','blue','indigo','violet']
word_to_search = 'orange'
index = rainbow.index(word_to_search)
print(rainbow[index][1:4])

<强>输出

ran

答案 2 :(得分:1)

你有一个很好的开始。如果您想要特定颜色,可以使用index = rainbow.index('orange')在列表中搜索橙色索引以查找橙色,然后拨打orange = rainbow[index]然后您可以通过letters = orange[1:3]获取该信息。我在程序中添加了截断版本。

如果我想在完整列表中执行此操作,我会使用以下程序

def main():
    rainbow = ['red','orange','yellow','green','blue','indigo','violet']

    # If you want to print it for each color
    for color in rainbow:
        print(ith_letter(1, 4, color))

    # OR, If you want to print it for a specifi color

    orange = rainbow[rainbow.index('orange')]
    print(orange[1:4])


#-------------------------------------------------------------------------------

def ith_letter(start, finish, string):

    # color may not contain 4 letters
    try:
        return string[start:finish]
    except:
        return ""

#-------------------------------------------------------------------------------

# Call main function
main()

答案 3 :(得分:0)

您必须将字符串中所需的字母分配给变量,然后打印变量

for i in rainbow:
    string = i[1:4] 
    print(string)

它有效。但要小心,你必须检查字符串中是否有那么多字母。例如,红色是3个字母,它会产生错误/意外结果