字典键值连接

2024-09-29 19:24:30 发布

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

我尝试在dict中连接键/值对(我相信这是最好的方法),我想做的是将这些键/值附加到一个列表中,然后使用join()来生成一个大字符串。我希望这个函数可以作为一个函数来工作,对于任何传递的dict。这是一个例子dict

dictyy = {'first': 'one', 2: 'two', 'something': 'somethingValue',
      'somethingelse': 'somethingElseValue', 'last': 'lastvalue'}

我只关心串联字符串在它们各自的[0]和[-1]位置有“first”和“last”键。我知道我永远都有那两把钥匙,所以我应该可以把它们放在这样的绳子里。在

stringyy = 'python first' + dictyy['first'] + '{} {} {} {}' + 'last' + dictyy['last']'.format(key1, dictyy['key1'], key2, dictyy['key2'])

其他值可以按任何顺序排列。这里有点棘手的是,我可以在dictty中的1-4个“中间”键/值,我不知道如何解释这个变化的数字。我知道键是什么,但我不一定总是接收某些键,所以如果我有一个预定义的字符串,我想格式化并引用一个没有传递的键的特定值,那么我将收到一个KeyError。在

除了条件句,还有什么方法可以让我直接接受不确定性?这样做可能会有帮助:

^{pr2}$

Tags: 方法函数字符串列表onedictsomething例子
2条回答

这样可以保证元素按照您想要的顺序放置。在

my_dict = {
            'first': 'one', 2: 'two', 'something': 'somethingValue',
            'somethingelse': 'somethingElseValue', 'last': 'lastvalue'
        }

rows_list=list(my_dict.keys())
values_list=list(my_dict.values())

stringyy = ''
for k,v in my_dict.items():
    stringyy = stringyy + str(k) + ':' + str(v) + ' '

print(stringyy)

输出: first:one 2:two something:somethingValue somethingelse:somethingElseValue last:lastvalue 检查字典可以使用的方法,如items()keys()和{}。希望这有帮助:)

您可以使用dict.pop来提取第一个和最后一个键的值,同时从字典中删除这些键。在

然后可以使用itertools.chainstr.join将所有键值对作为单个字符串检索。注意,字典被认为是无序的(除非您使用的是python3.7+),您不应该期望这些键值对以任何特定的顺序输出。在

最后,f-strings(python3.6+)是组合变量的有效方法。在

下面是一个演示:

from itertools import chain

first_key = 'first'
last_key = 'last'

first_val = dictyy.pop(first_key)
last_val = dictyy.pop(last_key)
middles = ' '.join(map(str, chain.from_iterable(dictyy.items())))

res = f'{first_key} {first_val} {middles} {last_key} {last_val}'

print(res)

'first one 2 two something somethingValue somethingelse somethingElseValue last lastvalue'

相关问题 更多 >

    热门问题