【问题标题】:How to divide the alphabet into lists of letters in a different way如何以不同的方式将字母表划分为字母列表
【发布时间】:2020-04-01 16:30:46
【问题描述】:

我应该把字母表分成字母表。我做到了,我的解决方案很好,但我的导师对我说,我应该稍微改进一下这个解决方案。

这是我的代码:

import string
import random


def generate_list():

    list_of_letters=list(string.ascii_lowercase)
    number_of_letter = len(list_of_letters)
    main_list = []

    while number_of_letter > 0:
        a = random.randint(4, 7)
        number_of_letter -= a
        main_list.append(list_of_letters[0:a])
        del list_of_letters[0:a]

    print(main_list)

generate_list()

我的导师说我应该在一个函数中获取和删除字母列表,而不是使用del function手动删除这些带有所有字母列表的片段所以他想在一行中替换这段代码.

main_list.append(list_of_letters[0:a])
del list_of_letters[0:a]

有人可以帮助我吗?提前谢谢你:)

【问题讨论】:

    标签: python list divide


    【解决方案1】:

    您可以使用列表的pop() 功能。它返回列表中的一项并将其从列表中删除。

    当它从右侧移除时,在您的情况下,您必须通过调用 pop(0) 来明确告知在索引 0 处获取列表项。

    因此,将上面的两行替换为以下 sn-p 应该一步完成:

    main_list.append([list_of_letters.pop(0) for _ in range(min(len(list_of_letters), a))])
    

    请注意,如果a 大于其中的其余项目,我将停止从list_of_letters 弹出元素,因此min(len(list_of_letters), a)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2023-03-11
      • 1970-01-01
      • 2017-07-30
      • 1970-01-01
      • 2019-03-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多