当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Python Dictionary转Concatenated String用法及代码示例


有时,在使用字典时,我们可能需要执行将字典转换为字符串(连接键值对)的任务。这可以应用于需要减少存储空间或需要字符串作为目标数据的领域。让我们讨论执行此任务的某些方法。

方法一:使用空字符串+for循环

在此方法中,我们将使用 for 循环来迭代字典对象,并继续将键:值对添加到空字符串中。

Python3


# Python3 code to demonstrate working of
# Convert Dictionary to Concatenated String
# Using an empty string + for loop
# initializing dictionary
test_dict = {'gfg': 1, 'is': 2, 'best': 3}
# printing original dictionary
print("The original dictionary is : " + str(test_dict))
# Create an empty string
res = ' '
# Convert Dictionary to Concatenated String
# Using for loop and empty string
for item in test_dict:
    res += item + str(test_dict[item])
# printing result
print("The dictionary after concatenation is : " + str(res))
输出
The original dictionary is : {'gfg': 1, 'is': 2, 'best': 3}
The dictionary after concatenation is :  gfg1is2best3

方法二:使用join() + items()

可以使用以上函数的组合来解决这个问题。在此,我们需要使用join()执行连接任务,并使用items()完成字典项的提取。

Python3


# Python3 code to demonstrate working of 
# Convert Dictionary to Concatenated String
# Using join() + items()
# initializing dictionary
test_dict = {'gfg' : 1, 'is' : 2, 'best' : 3}
# printing original dictionary
print("The original dictionary is : " + str(test_dict))
# Convert Dictionary to Concatenated String
# Using join() + items()
res = ''.join(key + str(val) for key, val in test_dict.items())
# printing result 
print("The dictionary after concatenation is : " + str(res)) 
输出
The original dictionary is : {'gfg': 1, 'is': 2, 'best': 3}
The dictionary after concatenation is : gfg1is2best3

方法3:使用reduce() + lambda

上述函数的组合可用于执行此任务。在此,我们使用 reduce() 和 lambda 的组合执行串联任务。

Python3


# Python3 code to demonstrate working of 
# Convert Dictionary to Concatenated String
# Using reduce() + lambda
from functools import reduce
# initializing dictionary
test_dict = {'gfg' : 1, 'is' : 2, 'best' : 3}
# printing original dictionary
print("The original dictionary is : " + str(test_dict))
# Convert Dictionary to Concatenated String
# Using reduce() + lambda
res = reduce(lambda key, val : key + str(val[0]) + str(val[1]), test_dict.items(), '')
# printing result 
print("The dictionary after concatenation is : " + str(res)) 
输出
The original dictionary is : {'gfg': 1, 'is': 2, 'best': 3}
The dictionary after concatenation is : gfg1is2best3

方法#4:将列表理解与 zip() 函数结合使用

脚步:

  1. 定义输入字典
  2. 使用 zip() 函数并行迭代字典的键和值。
  3. 使用列表理解通过 + 运算符和 str() 函数将每个键值对连接成一个字符串。
  4. 使用 join() 方法连接结果字符串列表。
  5. 打印连接的字符串。

Python3


# Define the input dictionary
my_dict = {'gfg': 1, 'is': 2, 'best': 3}
# Convert dictionary to concatenated string using a list comprehension with zip() function
concatenated_string = ''.join([str(x) + str(y) for x, y in zip(my_dict.keys(), my_dict.values())])
# Print the concatenated string
print("The dictionary after concatenation is : ", concatenated_string)
输出
The dictionary after concatenation is :  gfg1is2best3

时间复杂度:O(n)。此方法中的 zip() 函数的时间复杂度为 O(n),其中 n 是字典中的项目数。列表推导式的时间复杂度为 O(n),其中 n 是字典中的项目数。 join() 方法的时间复杂度为 O(n),其中 n 是结果字符串的长度。
辅助空间:O(n)。此方法使用列表理解创建字符串列表,其空间复杂度为 O(n),其中 n 是字典中的项目数。 join() 方法还会创建一个新的字符串对象,其空间复杂度为 O(n),其中 n 是结果字符串的长度。

方法 5:使用map() 函数

方法:

使用 map() 函数和 lambda 函数将键和值连接成单个字符串,然后使用 join() 方法将结果列表连接成单个字符串。

脚步:

  1. 创建字典。
  2. 使用 map() 函数和 lambda 函数将每个键和值对连接成单个字符串。
  3. 将生成的Map对象转换为列表。
  4. 使用 join() 方法将列表中的字符串连接成单个字符串。
  5. 返回最终的连接字符串。

Python3


# Initializing dictionary
my_dict = {'gfg': 1, 'is': 2, 'best': 3}
# Concatenate keys and values into a list
# using map() with a lambda function
result_list = list(map(lambda x: x[0] + str(x[1]), my_dict.items()))
# Concatenating the list items into a single string
result = "".join(result_list)
# Printing answer
print(result)
输出
gfg1is2best3

时间复杂度:O(n),其中 n 是字典中的项目数。 map()函数、列表转换和join()方法的时间复杂度均为O(n),因此总体时间复杂度为O(n)。
辅助空间:O(n),其中 n 是字典中的项目数。 map() 函数创建一个需要 O(n) 空间的映射对象,并且生成的列表也需要 O(n) 空间。最终的连接字符串也需要 O(n) 空间。所以整体的空间复杂度是O(n)。

方法6:使用re.sub()方法

直觉:我们使用 re.sub() 函数从给定字典的字符串表示形式中删除所有非字母数字字符。

脚步:

  1. 导入 re 模块。
  2. 定义一个字典my_dict。
  3. 使用str()函数将字典转换为字符串。
  4. 将 re.sub() 函数应用于正则表达式模式 r'\W+' 的字符串,以删除所有非单词字符。
  5. 将结果字符串存储在变量 result 中。
  6. 打印结果的值。

Python3


import re
# Initializing list
my_dict = {'gfg': 1, 'is': 2, 'best': 3}
result = re.sub(r'\W+', '', str(my_dict))
# Printing answer
print(result)
输出
gfg1is2best3

时间复杂度:O(N),其中 n 是结果字符串的长度。这是因为 re.sub() 函数会遍历字符串中的每个字符一次。
辅助空间:O(N),其中 n 是结果字符串的长度。这是因为我们创建了一个仅包含字母数字字符的新字符串。

方法 7:使用生成器表达式 + join 函数

脚步:

  1. 使用生成器表达式来迭代字典中的键值对,并使用字符串连接将它们连接起来。
  2. 将生成器表达式传递给 join 函数以将连接的字符串连接成单个字符串。
  3. 打印最终的连接字符串。

Python3


# Iniializing dictionary 
my_dict = {'gfg': 1, 'is': 2, 'best': 3}
# Concatenate keys and values into a single string
# using generator expression and join function 
result = "".join(key + str(value) for key, value in my_dict.items())
# Pinting answer
print(result)
输出
gfg1is2best3

该方法的时间复杂度为O(n),其中n是字典中键值对的数量。

使用的辅助空间为 O(n),其中 n 是最终连接字符串的长度。



相关用法


注:本文由纯净天空筛选整理自manjeet_04大神的英文原创作品 Python – Convert Dictionary to Concatenated String。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。