热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

python字符串按首字母排序,Python按字母順序排序字符串,首先是小寫

Iwanttosortagivenarrayofstringsalphabeticallyusingpython,butlowercasewordsshouldappearfirs

I want to sort a given array of strings alphabetically using python, but lowercase words should appear first.

我想使用python按字母順序對給定的字符串數組進行排序,但首先應出現小寫字。

An example:

一個例子:

#!/usr/local/bin/python2.7

arr=['A','e','a','D','f','B']

arr.sort()

for s in arr: print s

Input:

輸入:

A

e

a

D

f

B

Output (current):

輸出(當前):

A

B

D

a

e

f

Output (should be):

輸出(應該):

a

e

f

A

B

D

5 个解决方案

#1

6

Use a custom key method which checks whether the item is not .lower() and then compares the items itself. For 'A', 'D' and 'B' not x.islower() will return True and for other it is False, as True > False smaller case items will come first:

使用自定義鍵方法檢查項目是否不是.lower(),然后比較項目本身。對於'A','D'和'B'而不是x.islower()將返回True而對於其他它將為False,因為True> False較小的案例項將首先出現:

>>> arr = ['A','e','a','D','f','B']

>>> arr.sort(key=lambda x:(not x.islower(), x))

>>> arr

['a', 'e', 'f', 'A', 'B', 'D']

#2

7

To sort words, and not simply letters, just swap the case:

要對單詞進行排序,而不僅僅是字母,只需交換案例:

>>> words = ['alpha', 'Alpha', 'aLpha', 'Bravo', 'bRavo']

>>> sorted(words)

['Alpha', 'Bravo', 'aLpha', 'alpha', 'bRavo']

>>> sorted(words, key=str.swapcase)

['alpha', 'aLpha', 'bRavo', 'Alpha', 'Bravo']

#3

3

We can use string.ascii_letters to get index of each letters to sort them.

我們可以使用string.ascii_letters來獲取每個字母的索引以對它們進行排序。

arr = ['A','e','a','D','f','B']

import string

print sorted(arr, key=string.ascii_letters.index)

Results:

結果:

['a', 'e', 'f', 'A', 'B', 'D']

Or if you want to sort the original arr list use sort built-in function.

或者,如果要對原始arr列表進行排序,請使用sort內置函數。

arr.sort(key=string.ascii_letters.index)

print arr

If the arr list is having words instead of single letters or alphabets we can use str.swapcase

如果arr列表中有單詞而不是單個字母或字母,我們可以使用str.swapcase

arr = ['Abc', 'abc', 'aBc']

print sorted(arr, key=str.swapcase)

Yields:

產量:

['abc', 'aBc', 'Abc']

#4

1

Some timings show that for sorting single characters creating a dict is the actually most efficient:

一些時間表明,對於排序單個字符創建一個字典實際上是最有效的:

python2.7:

python2.7:

from string import ascii_letters

d = {b:a for a, b in enumerate(ascii_letters)}

In [34]: timeit sorted(s, key=str.swapcase)

10 loops, best of 3: 32.6 ms per loop

In [35]: timeit sorted(s,key=lambda x: (not x.islower(),x))

10 loops, best of 3: 51.4 ms per loop

In [37]: timeit (sorted(s ,key=d.get))

10 loops, best of 3: 22.4 ms per loop

Python3.4:

Python3.4:

In [4]: timeit sorted(s,key=lambda x: (not x.islower(),x))

10 loops, best of 3: 57.7 ms per loop

In [5]: timeit sorted(s, key=str.swapcase)

10 loops, best of 3: 41.2 ms per loop

In [6]: timeit (sorted(s ,key=d.get))

10 loops, best of 3: 21.1 ms per loop

#5

0

Given : Alphanumeric string

給定:字母數字字符串

Aim: To sort by rules

目標:按規則排序

Small letters first.

首先是小寫字母。

Then capital letters.

然后大寫字母。

Then digits (even first, odd last) (Least priority).

然后是數字(甚至是第一個,最后一個奇數)(最低優先級)。 def func(l):

if l.islower():

return ord(l) - 32

elif l.isupper():

return ord(l) + 32

elif l.isdigit():

if int(l) % 2 == 0:

return ord(l) + 200

else:

return ord(l) + 100

print(*sorted(st, key=func), sep='')



推荐阅读
  • 微软头条实习生分享深度学习自学指南
    本文介绍了一位微软头条实习生自学深度学习的经验分享,包括学习资源推荐、重要基础知识的学习要点等。作者强调了学好Python和数学基础的重要性,并提供了一些建议。 ... [详细]
  • sklearn数据集库中的常用数据集类型介绍
    本文介绍了sklearn数据集库中常用的数据集类型,包括玩具数据集和样本生成器。其中详细介绍了波士顿房价数据集,包含了波士顿506处房屋的13种不同特征以及房屋价格,适用于回归任务。 ... [详细]
  • 个人学习使用:谨慎参考1Client类importcom.thoughtworks.gauge.Step;importcom.thoughtworks.gauge.T ... [详细]
  • CF:3D City Model(小思维)问题解析和代码实现
    本文通过解析CF:3D City Model问题,介绍了问题的背景和要求,并给出了相应的代码实现。该问题涉及到在一个矩形的网格上建造城市的情景,每个网格单元可以作为建筑的基础,建筑由多个立方体叠加而成。文章详细讲解了问题的解决思路,并给出了相应的代码实现供读者参考。 ... [详细]
  • 如何自行分析定位SAP BSP错误
    The“BSPtag”Imentionedintheblogtitlemeansforexamplethetagchtmlb:configCelleratorbelowwhichi ... [详细]
  • 电话号码的字母组合解题思路和代码示例
    本文介绍了力扣题目《电话号码的字母组合》的解题思路和代码示例。通过使用哈希表和递归求解的方法,可以将给定的电话号码转换为对应的字母组合。详细的解题思路和代码示例可以帮助读者更好地理解和实现该题目。 ... [详细]
  • Linux服务器密码过期策略、登录次数限制、私钥登录等配置方法
    本文介绍了在Linux服务器上进行密码过期策略、登录次数限制、私钥登录等配置的方法。通过修改配置文件中的参数,可以设置密码的有效期、最小间隔时间、最小长度,并在密码过期前进行提示。同时还介绍了如何进行公钥登录和修改默认账户用户名的操作。详细步骤和注意事项可参考本文内容。 ... [详细]
  • 云原生边缘计算之KubeEdge简介及功能特点
    本文介绍了云原生边缘计算中的KubeEdge系统,该系统是一个开源系统,用于将容器化应用程序编排功能扩展到Edge的主机。它基于Kubernetes构建,并为网络应用程序提供基础架构支持。同时,KubeEdge具有离线模式、基于Kubernetes的节点、群集、应用程序和设备管理、资源优化等特点。此外,KubeEdge还支持跨平台工作,在私有、公共和混合云中都可以运行。同时,KubeEdge还提供数据管理和数据分析管道引擎的支持。最后,本文还介绍了KubeEdge系统生成证书的方法。 ... [详细]
  • 本文介绍了设计师伊振华受邀参与沈阳市智慧城市运行管理中心项目的整体设计,并以数字赋能和创新驱动高质量发展的理念,建设了集成、智慧、高效的一体化城市综合管理平台,促进了城市的数字化转型。该中心被称为当代城市的智能心脏,为沈阳市的智慧城市建设做出了重要贡献。 ... [详细]
  • 向QTextEdit拖放文件的方法及实现步骤
    本文介绍了在使用QTextEdit时如何实现拖放文件的功能,包括相关的方法和实现步骤。通过重写dragEnterEvent和dropEvent函数,并结合QMimeData和QUrl等类,可以轻松实现向QTextEdit拖放文件的功能。详细的代码实现和说明可以参考本文提供的示例代码。 ... [详细]
  • CSS3选择器的使用方法详解,提高Web开发效率和精准度
    本文详细介绍了CSS3新增的选择器方法,包括属性选择器的使用。通过CSS3选择器,可以提高Web开发的效率和精准度,使得查找元素更加方便和快捷。同时,本文还对属性选择器的各种用法进行了详细解释,并给出了相应的代码示例。通过学习本文,读者可以更好地掌握CSS3选择器的使用方法,提升自己的Web开发能力。 ... [详细]
  • 本文介绍了九度OnlineJudge中的1002题目“Grading”的解决方法。该题目要求设计一个公平的评分过程,将每个考题分配给3个独立的专家,如果他们的评分不一致,则需要请一位裁判做出最终决定。文章详细描述了评分规则,并给出了解决该问题的程序。 ... [详细]
  • eclipse学习(第三章:ssh中的Hibernate)——11.Hibernate的缓存(2级缓存,get和load)
    本文介绍了eclipse学习中的第三章内容,主要讲解了ssh中的Hibernate的缓存,包括2级缓存和get方法、load方法的区别。文章还涉及了项目实践和相关知识点的讲解。 ... [详细]
  • 推荐系统遇上深度学习(十七)详解推荐系统中的常用评测指标
    原创:石晓文小小挖掘机2018-06-18笔者是一个痴迷于挖掘数据中的价值的学习人,希望在平日的工作学习中,挖掘数据的价值, ... [详细]
  • XML介绍与使用的概述及标签规则
    本文介绍了XML的基本概念和用途,包括XML的可扩展性和标签的自定义特性。同时还详细解释了XML标签的规则,包括标签的尖括号和合法标识符的组成,标签必须成对出现的原则以及特殊标签的使用方法。通过本文的阅读,读者可以对XML的基本知识有一个全面的了解。 ... [详细]
author-avatar
财珍文纶1
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有