Python:根据单个列表中的元素创建嵌套列表

3

我有一个字符串列表:

ls = ['elev', 'solRd']

我想创建一个嵌套列表,其中包含两个元素,第二个元素可以更好地解释第一个元素的含义。
ls.out = [["elev", "elevation"], ["solRd", "solRadiation"]]

我只有几个字符串需要重复使用,因此我希望能够手动指定。

例如, 如果元素是'elev',则新的配对项将是'elevation'; 如果元素是'solRd',则新元素为'solarRadiation',等等。

这似乎很容易,但我相对较新于Python,无法弄清楚。

我尝试通过名称ls ['a']来缩小我的元素,并将其包含到新列表中,但即使是根据名称的子集也无法正常工作。 我不想通过索引进行子集选择,以防我的字符串顺序发生变化。


5
你希望从哪里获取字符串中的附加字符?你已经尝试过什么? - Sayse
2
这似乎是一个原始的任务,如果它涉及一些复杂性 - 那么请澄清你的规则。 - RomanPerekhrest
请准确描述您想要实现的目标。也许使用字典比列表更合适。 - Christopher Graf
4个回答

2
meanings = {
    "elev": "elevation",
    "solRd": "solRadiation"
}

ls = ["elev", "solRd"]

lists = [[item, meanings.get(item, "")] for item in ls]

1
如果您创建一个映射表来指定需要添加的单词,这将变得更加容易。
>>> mapping = {'solRd': 'solRadiation', 'elev': 'elevation'}
>>> [[e, mapping[e]] for e in ls]
[['elev', 'elevation'], ['solRd', 'solRadiation']]

0
ls = ['elev', 'solRd']
ls_out = []

for item in ls:
    if item == 'elev':
        ls_out.append(['elev', 'elevation'])
    elif item == 'solRd':
        ls_out.append(['solRd', 'solRadiation'])

print(ls_out) # [['elev', 'elevation'], ['solRd', 'solRadiation']]

你不能使用点符号(ls.out)来命名变量。对于Python,请改用ls_out


0
new_2d_list = []
for i in ls:
    if i == 'elev':#or whatever
        new_2d_list.append([i,'the string i want for elev'])

同样适用于您想要的值


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接