📌  相关文章
📜  Python – 字符串列表中的范围最大元素

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

Python – 字符串列表中的范围最大元素

有时,在处理Python数据时,我们可能会遇到一个问题,即我们有字符串列表形式的数据,我们需要找到该数据中的最大元素,但也需要在某个索引范围内。这是一个非常特殊的问题,但可以在数据域中应用。让我们讨论可以执行此任务的某些方式。

方法 #1:使用max() + split() + 列表理解
以上功能的组合就是用来解决这个问题的。在此,我们在特定范围内执行列表中每个字符串元素的拆分,然后使用 max() 来查找每个列表中该范围内的最大元素。首先,子列表中的最大值,然后是其他索引中的最大值。

# Python3 code to demonstrate working of 
# Ranged Maximum Element in String Matrix
# Using max() + split() + list comprehension
  
# initializing list
test_list = ['34, 78, 98, 23, 12',
             '76, 65, 54, 43, 21',
             '82, 45, 32, 45, 32',
             '78, 34, 12, 34, 10']
  
# printing original list
print("The original list is : " + str(test_list))
  
# initializing Range 
i, j = 2, 4
  
# Ranged Maximum Element in String Matrix
# Using max() + split() + list comprehension
res = max([max(idx.split(', ')[i - 1: j]) for idx in test_list])
  
# printing result 
print("The maximum ranged element : " + str(res)) 
输出 :

方法 #2:使用生成器表达式 + max()
上述功能的组合可以用来解决这个问题。在此,我们使用单个 max()函数提取所有元素最大值,并使用嵌套生成器表达式一次性提取字符串的所有元素。

# Python3 code to demonstrate working of 
# Ranged Maximum Element in String Matrix
# Using generator expression + max()
  
# initializing list
test_list = ['34, 78, 98, 23, 12',
             '76, 65, 54, 43, 21',
             '82, 45, 32, 45, 32',
             '78, 34, 12, 34, 10']
  
# printing original list
print("The original list is : " + str(test_list))
  
# initializing Range 
i, j = 2, 4
  
# Ranged Maximum Element in String Matrix
# Using generator expression + max()
res = max(ele for sub in test_list for ele in sub.split(', ')[i - 1: j])
  
# printing result 
print("The maximum ranged element : " + str(res)) 
输出 :