在python中将2D数组中的所有元素转换为大写

时间:2017-09-06 12:45:18

标签: python arrays multidimensional-array

我有一个看起来像这样的2D数组:

array =[['a', 'b', 'c', 'd'], ['e', 'f'], ['g', 'h', 'i', 'k', 'l']]

有没有办法将数组的所有元素转换为大写字母?当子数组的大小相同时,我唯一可以处理的方法只适用于一维数组或二维数组。

7 个答案:

答案 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)

1。转换为列表中大写的字母列表

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']

2。通过列表理解

将不同列表的所有元素放在一个列表中
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']