我有一个看起来像这样的2D数组:
array =[['a', 'b', 'c', 'd'], ['e', 'f'], ['g', 'h', 'i', 'k', 'l']]
有没有办法将数组的所有元素转换为大写字母?当子数组的大小相同时,我唯一可以处理的方法只适用于一维数组或二维数组。
答案 0 :(得分:9)
这可能是你需要的,非常简单的列表理解:
id_rsa.pub
答案 1 :(得分:2)
您可以使用.join()
和.split()
:
array =[['a', 'b', 'c', 'd'], ['e', 'f'], ['g', 'h', 'i', 'k', 'l']]
# 1. join letters with ' '. 2. UP them. 3. split them with ' '
new_array = [' '.join(a).upper().split() for a in array]
print(new_array) # => [['A', 'B', 'C', 'D'], ['E', 'F'], ['G', 'H', 'I', 'K', 'L']]
如果元素有多个字母并且字母之间有空格,请使用:
array =[['a x', 'bq', 'c', 'd'], ['e', 'f'], ['g', 'ha', 'd i', 'k', 'l']]
new_array = [[x.upper() for x in a] for a in array]
print(new_array) # => [['A X', 'BQ', 'C', 'D'], ['E', 'F'], ['G', 'HA', 'D I', 'K', 'L']]
答案 2 :(得分:0)
可能的解决方案是使用map
函数:
>>> map(lambda x: map(lambda y: y.upper(), x), array)
[['A', 'B', 'C', 'D'], ['E', 'F'], ['G', 'H', 'I', 'K', 'L']]
您还可以使用列表推导:
>>> [[x.upper() for x in y] for y in array]
[['A', 'B', 'C', 'D'], ['E', 'F'], ['G', 'H', 'I', 'K', 'L']]
答案 3 :(得分:0)
for x in array:
[y.upper() for y in x]
然后你必须将它们包装成一个新数组
一起完成这一切的方法可能是:
newarr = []
for x in array:newarr.append([y.upper() for y in x])
答案 4 :(得分:0)
你的数组应该是,用逗号分隔的元素
array =[['a', 'b', 'c', 'd'],['e', 'f'],['g', 'h', 'i', 'k', 'l']]
将所有数组elemts的所有元素映射到大写
array_new = list(map(lambda x:list(map(lambda y:str.upper(y),x)),array))
答案 5 :(得分:0)
您希望结果是相同的形状还是一个数组?
如果你想要一个阵列,你可以这样做:
foo = [["a", "b", "c"], ["d", "e"], ["f", "g", "h"]]
[x.upper() for inner in foo for x in inner]
如果你想要相同的形状:
[[x.upper() for x in inner] for inner in foo]
请注意,两个示例中的顺序不同。这是因为在第二种情况下,Python"循环过来"首先是外部理解,并在每个点使用inner
以上的值来评估内在理解。
无论哪种方式,请阅读list comprehensions。它们是Python中很多东西的最佳解决方案。
答案 6 :(得分:0)
array = [['a', 'b', 'c', 'd'], ['e', 'f'], ['g', 'h', 'i', 'k', 'l']]
for lists in array:
for elements in lists:
lists[lists.index(elements)] = elements.upper()
print(array)
输出
[['A','B','C','D'],['E','F'],['G','H','I','K',' L']
array = [['a', 'b', 'c', 'd'], ['e', 'f'], ['g', 'h', 'i', 'k', 'l']]
array = [lists[lists.index(elements)].upper() for lists in array for elements in lists]
print(array)
输出
['A','B','C','D','E','F','G','H','I','K','L']