如何在Python中根据特定条件对随机单词进行排序?

z9zf31ra  于 2023-05-21  发布在  Python
关注(0)|答案(3)|浏览(216)

如何根据不同的排序逻辑(标准)对随机词进行排序?
大家好,我是Python的新手,阅读了一些书,我得到了一个练习,但仍然不知道如何去做。所以这个练习要求我做一个程序,在给定一定标准的情况下,对一个随机单词的字母进行排序。首先,所有小写字母按升序排列,与大写字母相同。然后用数字(我想是数字)按关闭和偶数升序排列它们。最后,创建一个新变量来存储您创建的新词,并按上述所有条件进行排序。这本书给了我一个例子。给定单词“OrDenar 1234”,新的世界应该是“aenrrDO 1324”需要注意的是,我仍然没有到达Python书的函数部分。所以我试着用我现在掌握的知识(变量,条件,循环,列表等)来做这件事。PD:使用输入向用户询问世界。
提前感谢,希望有人能帮助我。干杯!

5kgi1eie

5kgi1eie1#

上面的答案是编写这个程序的更好的方法。但在开始的时候,这对我来说更容易理解。所以我想我应该把它放在这里。分类

s = "Test1231DEche"
lc="" # lc=[] list for sort() function
uc=""
edigits=""
odigits=""
for i in s: #iterate through string
    if(i.islower()):#check lower case
        lc+=i
    elif(i.isdigit()):
        if(int(i)%2==0):
            edigits+=i #check even digits
        else:
            odigits+=i
    elif(i.isupper()): #check uppercase
        uc+=i
lc=sorted(lc) #sorted since string, for sort() you need to make above to list
uc=sorted(uc) #uc after sort is a list you can see by printing them
edigits=sorted(edigits) #edigits.sort() for list
odigits=sorted(odigits)
print(uc)
fin = ' '.join(lc+uc+edigits+odigits) #join above list to string
print(fin)
ioekq8ef

ioekq8ef2#

您可以使用内置的字符串方法:str.islower()str.isupper()str.isdigit()(我没有使用str.isdigit()方法,因为我使用了else子句。

s = 'OrDenar1234'
middle = ''
end = ''
start = ''
for i in sorted(s):
    if i.islower():
        start += i
    elif i.isupper():
        middle += i
    else:
        end += i
print(start + middle + end)

输出:

aenrrDO1234
1mrurvl1

1mrurvl13#

# Take the word as input
word = input("Enter a word: ")

# Separate out the lowercase, uppercase, and digits
lowercase_letters = [char for char in word if char.islower()]
uppercase_letters = [char for char in word if char.isupper()]
digits = [char for char in word if char.isdigit()]

# Sort the lowercase and uppercase letters
lowercase_letters.sort()
uppercase_letters.sort()

# Separate and sort the odd and even digits
odd_digits = [digit for digit in digits if int(digit) % 2 != 0]
even_digits = [digit for digit in digits if int(digit) % 2 == 0]
odd_digits.sort()
even_digits.sort()

# Combine all of them to form the final string
final_word = "".join(lowercase_letters + uppercase_letters + odd_digits + even_digits)

print(final_word)

1.要求用户输入单词。
1.将单词分解为小写字母、大写字母和数字。
1.按升序对每组进行排序。
1.将已排序的组组合成最后一个单词。
1.最后,打印最终结果!!

相关问题