【问题标题】:Creating a list with customised names depending on the range in a for loop根据 for 循环中的范围创建具有自定义名称的列表
【发布时间】:2020-06-04 13:39:11
【问题描述】:

我有一个基本清单:

Number = 4

for i in range(1, Number):

    alpha = [f"alpha{i}" for i in range(1, Number)]

无论 N 是什么,这都会产生 alpha1, alpha2,...alphaN。

但是我希望进一步定制它。例如,我希望它生成一个名称为 alphaCR、alphaC2R、alphaC3R 或 alphaRC、alphaRC2 等的输出列表。因此,根据 N 是什么,总共有 N(N-1) 个术语这个列表。但是我在用这种方法弄清楚逻辑时遇到了麻烦。在我目前的方法中使用数字的问题是,由于术语的数量会让人感到困惑

【问题讨论】:

  • 预期输出是什么?
  • range(1, Number)1Number-1,而不是从 1Number
  • 您的列表理解不需要在 for 循环中

标签: python list indexing


【解决方案1】:

IIUC 您想将数字i 和字母组合为前缀p 或后缀s,其中数字可能不存在:

number = 4
[f'alpha{p}{i}{s}' for i in [''] + list(range(1, number+1)) for p in ['C', 'R'] for s in ['C', 'R'] if s != p]

结果:

['alphaCR', 'alphaRC', 'alphaC1R', 'alphaR1C', 'alphaC2R', 'alphaR2C', 'alphaC3R', 'alphaR3C', 'alphaC4R', 'alphaR4C']

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-01-27
    • 1970-01-01
    • 2022-12-12
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多