创建文本项列表的pythonic习惯用法是什么?

2024-04-20 07:01:24 发布

您现在位置:Python中文网/ 问答频道 /正文

通常我有一个常量文本值的列表,我想把它放入一个列表中。我当然不想自己打很多逗号和引号!你知道吗

我已经确定了这个习惯用法:使用三个引号创建一个多行字符串,每行有一个文本条目,从而创建一个包含换行符的字符串常量(从我按下时开始),然后在换行符上拆分并删除字符串的第一行和最后一行空白(仅换行):

colors = """
black
brown
Salmon
red
Orange Red
Dark Goldenrod
Dark Olive Green
Chartreuse
navy
blue
Deep Pink
Dark Violet
""".split("\n")[1:-1]

有人有更好的方法吗?你知道吗


Tags: 字符串文本列表条目red空白引号black
3条回答

在评论中添加@talkaboutquality要求的答案。配置文件的内容非常简单,我提出了这个建议,假设在更大的项目中(即使它只针对您的学生),在源代码中以字符串形式传递一长串参数是非常不干净/混乱的。所以我的建议很简单:

#content of config.txt
black
brown
Salmon
red
Orange Red
Dark Goldenrod
Dark Olive Green
Chartreuse
navy
blue
Deep Pink
Dark Violet

现在,从python代码

fn=open("config.txt");
lines=fn.readlines();
colors=[x.strip() for x in lines];

当然,您可以将这三行代码封装在loadColor(fn)这样的函数中,这将使您的学生明白这一点。这样,您就可以添加/删除颜色,而无需修改源代码。我认为这主要是基于意见的,也许我从C++项目中发现了这个习惯,其中配置了键/值或脚本形式的配置文件( E.GEE> Lua脚本),使生活变得更容易。你知道吗

这里有一个选择打印上面的列表。你知道吗

colors = ("black,brown,Salmon,red,Orange Red,Dark Goldenrod,"
          "Dark Olive Green,Chartreuse,navy,blue,Deep Pink,Dark Violet"
          .split(','))
for color in colors:
    print(color)

除了列表初始值设定项,没有正式或非正式的“惯用语”。它具有足够的可读性(Python的目标之一是可读性),在一般情况下不需要任何其他东西来实现代码的可理解性。你知道吗

如果这对你来说还不够好,你可以随意使用任何你认为更方便的东西。一些选项:

  • 你给的分裂多行字符串很好
  • 如果您的列表很长(占用了大量空间,从而影响了代码的可读性),则可能会将其移到一个单独的文件中(同样,格式是您方便使用的任何格式,不要过度考虑)

相关问题 更多 >