根据大小写对列表进行排序
Sorting a list based on upper and lower case
我有一个列表:
List1 = ['name','is','JOHN','My']
我想将代词附加为新列表中的第一项,最后附加名称。其他项目应该在中间,它们的位置可以改变。
到目前为止我已经写了:
my_list = ['name','is','JOHN','My']
new_list = []
for i in my_list:
if i.isupper():
my_list.remove(i)
new_list.append(i)
print(new_list)
在这里,我无法检查一个项目是完全大写还是只有第一个字母大写。
我得到的输出:
['name','is','JOHN','My']
我想要的输出:
['My','name','is','JOHN']
或:
['My','is','name','JOHN']
编辑: 我看过 this post 但它没有回答我的问题。
这个怎么样:
s = ['name', 'is', 'JOHN', 'My']
pronoun = ''
name = ''
for i in s:
if i.isupper():
name = i
if i.istitle():
pronoun = i
result = [pronoun, s[0], s[1], name]
print(result)
i.isupper()
会告诉你是不是全大写
要测试是否只有第一个字符是大写而其余字符是小写,您可以使用 i.istitle()
为了获得最终结果,您可以根据条件附加到不同的列表。
all_cap = []
init_cap = []
non_cap = []
for i in my_list:
if i.isupper():
all_cap.append(i)
elif i.istitle():
init_cap.append(i)
else:
non_cap.append(i)
new_list = init_cap + non_cap + all_cap
print(new_list)
请不要@我XD。试试这个。
my_list = ['name','is','JOHN','My']
new_list = ['']
for i in range(len(my_list)):
if my_list[i][0].isupper() and my_list[i][1].islower():
new_list[0] = my_list[i]
elif my_list[i].islower():
new_list.append(my_list[i])
elif my_list[i].isupper():
new_list.append(my_list[i])
print(new_list)
我有一个列表:
List1 = ['name','is','JOHN','My']
我想将代词附加为新列表中的第一项,最后附加名称。其他项目应该在中间,它们的位置可以改变。
到目前为止我已经写了:
my_list = ['name','is','JOHN','My']
new_list = []
for i in my_list:
if i.isupper():
my_list.remove(i)
new_list.append(i)
print(new_list)
在这里,我无法检查一个项目是完全大写还是只有第一个字母大写。
我得到的输出:
['name','is','JOHN','My']
我想要的输出:
['My','name','is','JOHN']
或:
['My','is','name','JOHN']
编辑: 我看过 this post 但它没有回答我的问题。
这个怎么样:
s = ['name', 'is', 'JOHN', 'My']
pronoun = ''
name = ''
for i in s:
if i.isupper():
name = i
if i.istitle():
pronoun = i
result = [pronoun, s[0], s[1], name]
print(result)
i.isupper()
会告诉你是不是全大写
要测试是否只有第一个字符是大写而其余字符是小写,您可以使用 i.istitle()
为了获得最终结果,您可以根据条件附加到不同的列表。
all_cap = []
init_cap = []
non_cap = []
for i in my_list:
if i.isupper():
all_cap.append(i)
elif i.istitle():
init_cap.append(i)
else:
non_cap.append(i)
new_list = init_cap + non_cap + all_cap
print(new_list)
请不要@我XD。试试这个。
my_list = ['name','is','JOHN','My']
new_list = ['']
for i in range(len(my_list)):
if my_list[i][0].isupper() and my_list[i][1].islower():
new_list[0] = my_list[i]
elif my_list[i].islower():
new_list.append(my_list[i])
elif my_list[i].isupper():
new_list.append(my_list[i])
print(new_list)