【问题标题】:Nested Loop for printing out different strings (Python)用于打印不同字符串的嵌套循环(Python)
【发布时间】:2020-07-17 11:22:27
【问题描述】:

我想从我拥有的列表中打印正确的字符串,同时循环浏览我拥有的另一个列表。

我的两个列表如下所示:

overview_list = ['1','2','3']
my_list = ['name1', 'year1', 'date1', 'numbre1', 
'name2', 'year2', 'date2', 'numbre2',
'name3','year3','date3', 'numbre3']

我想遍历overview_list,并且对于我想打印()来自my_list的每个字符串。

这些是:

对于来自 overview_list 的 '1',应该打印:'name1', 'year1', 'date1', 'numbre1'

对于来自overview_list 的“2”,应打印:“name2”、“year2”、“date2”、“numbre2”

等等……

我认为这可以通过嵌套循环来完成,但我仍然是 Python 的初学者,不知道如何操作。 非常感谢您的帮助!

【问题讨论】:

    标签: python list loops nested-loops


    【解决方案1】:

    试试这个,你不需要嵌套循环,而是使用range(start, stop, step) + splicing

    over_view = 3
    
    for i in range(0, len(my_list), over_view + 1):
        print(", ".join(my_list[i: i + over_view + 1]))
    

    name1, year1, date1, numbre1
    name2, year2, date2, numbre2
    name3, year3, date3, numbre3
    

    【讨论】:

    • 我试图概括这一点,因此我选择overview_list = [1,2,3],但也可以是overview_list = [x,y,z]
    • @Etiende [x,y,z] 的值是什么?您现有的输出将如何根据这些值发生变化?
    • x,y,z 只是作为字符串的名称。对于overview_list 中的每个名称,my_list 中的相应字符串是 name1、year1、date1、number1,用于overview_list 上的第一个字符串(此处为 [x])。来自my_list 的第二个字符串对应来自overview_list(此处为[y])的相应字符串将是name2、year2、date2、number2 等等
    • @Etiende,您是否正在寻找一些要从 my_list 创建的嵌套列表,[[name1,year1..], [name2, year2..]..]
    【解决方案2】:

    如果您想在不同的行中打印每个字符串:

    overview_list = ['1','2','3']
    my_list = ['name1', 'year1', 'date1', 'numbre1', 
    'name2', 'year2', 'date2', 'numbre2',
    'name3','year3','date3', 'numbre3']
    
    for number in overview_list:
        for elem in my_list:
            if number in elem:
                print(elem)
    

    如果您想将与一个数字相关的所有字符串打印在一起,另一种选择:

    overview_list = ['1','2','3']
    my_list = ['name1', 'year1', 'date1', 'numbre1', 
    'name2', 'year2', 'date2', 'numbre2',
    'name3','year3','date3', 'numbre3']
    
    for number in overview_list:
        for elem in my_list:
            if number in elem:
                print(elem, end=" ")
        print()
    

    顺便说一句,你在“my_list”中写的是数字而不是数字

    评论后的补充: 为了在 overview_list 中使用任何字符串的序数 - 试试这个:

    overview_list = ['x','y','z']
    my_list = ['name1', 'year1', 'date1', 'numbre1', 
    'name2', 'year2', 'date2', 'numbre2',
    'name3','year3','date3', 'numbre3']
    
    for index, item in enumerate(overview_list, 1):
        for elem in my_list:
            if str(index) in elem:
                print(elem, end=" ")
        print() 
    

    【讨论】:

    • 这适用于overview_list = [1,2,3],但如果overview_list = [x,y,z] 我能做什么,但其他一切都保持不变。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-04-06
    • 1970-01-01
    • 2019-02-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-05-29
    相关资源
    最近更新 更多