📜  Python|从字符频率元组构造字符串

📅  最后修改于: 2022-05-13 01:55:09.399000             🧑  作者: Mango

Python|从字符频率元组构造字符串

有时,在处理数据时,我们可能会遇到一个问题,即我们需要以一种方式执行字符串的构造,即我们有一个包含字符的元组列表及其对应的频率,并且我们需要从中构造一个新字符串。让我们讨论可以执行此任务的某些方式。

方法#1:使用循环
这是可以执行此任务的蛮力方法。在此,我们迭代列表并使用 *运算符执行字符串连接,并继续以这种方式构建字符串。

# Python3 code to demonstrate working of
# String construction from character frequency
# using loop
  
# initialize list 
test_list = [('g', 4), ('f', 3), ('g', 2)]
  
# printing original list 
print("The original list : " + str(test_list))
  
# String construction from character frequency
# using loop
res = ''
for char, freq in test_list:
    res = res + char * freq
  
# printing result
print("The constructed string is : " + str(res))
输出 :
The original list : [('g', 4), ('f', 3), ('g', 2)]
The constructed string is : ggggfffgg

方法 #2:使用join() + 列表推导
上述功能的组合可用于执行此任务。在此,我们使用列表推导执行提取任务并使用 join() 生成字符串。

# Python3 code to demonstrate working of
# String construction from character frequency
# using join() + list comprehension
  
# initialize list 
test_list = [('g', 4), ('f', 3), ('g', 2)]
  
# printing original list 
print("The original list : " + str(test_list))
  
# String construction from character frequency
# using join() + list comprehension
res = ''.join(char * freq for char, freq in test_list)
  
# printing result
print("The constructed string is : " + str(res))
输出 :
The original list : [('g', 4), ('f', 3), ('g', 2)]
The constructed string is : ggggfffgg