热门标签 | 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='')



推荐阅读
  • Go Cobra命令行工具入门教程
    本文介绍了Go语言实现的命令行工具Cobra的基本概念、安装方法和入门实践。Cobra被广泛应用于各种项目中,如Kubernetes、Hugo和Github CLI等。通过使用Cobra,我们可以快速创建命令行工具,适用于写测试脚本和各种服务的Admin CLI。文章还通过一个简单的demo演示了Cobra的使用方法。 ... [详细]
  • 本文介绍了使用Spark实现低配版高斯朴素贝叶斯模型的原因和原理。随着数据量的增大,单机上运行高斯朴素贝叶斯模型会变得很慢,因此考虑使用Spark来加速运行。然而,Spark的MLlib并没有实现高斯朴素贝叶斯模型,因此需要自己动手实现。文章还介绍了朴素贝叶斯的原理和公式,并对具有多个特征和类别的模型进行了讨论。最后,作者总结了实现低配版高斯朴素贝叶斯模型的步骤。 ... [详细]
  • 十大经典排序算法动图演示+Python实现
    本文介绍了十大经典排序算法的原理、演示和Python实现。排序算法分为内部排序和外部排序,常见的内部排序算法有插入排序、希尔排序、选择排序、冒泡排序、归并排序、快速排序、堆排序、基数排序等。文章还解释了时间复杂度和稳定性的概念,并提供了相关的名词解释。 ... [详细]
  • Python脚本编写创建输出数据库并添加模型和场数据的方法
    本文介绍了使用Python脚本编写创建输出数据库并添加模型数据和场数据的方法。首先导入相应模块,然后创建输出数据库并添加材料属性、截面、部件实例、分析步和帧、节点和单元等对象。接着向输出数据库中添加场数据和历程数据,本例中只添加了节点位移。最后保存数据库文件并关闭文件。文章还提供了部分代码和Abaqus操作步骤。另外,作者还建立了关于Abaqus的学习交流群,欢迎加入并提问。 ... [详细]
  • 微软头条实习生分享深度学习自学指南
    本文介绍了一位微软头条实习生自学深度学习的经验分享,包括学习资源推荐、重要基础知识的学习要点等。作者强调了学好Python和数学基础的重要性,并提供了一些建议。 ... [详细]
  • Linux服务器密码过期策略、登录次数限制、私钥登录等配置方法
    本文介绍了在Linux服务器上进行密码过期策略、登录次数限制、私钥登录等配置的方法。通过修改配置文件中的参数,可以设置密码的有效期、最小间隔时间、最小长度,并在密码过期前进行提示。同时还介绍了如何进行公钥登录和修改默认账户用户名的操作。详细步骤和注意事项可参考本文内容。 ... [详细]
  • 云原生边缘计算之KubeEdge简介及功能特点
    本文介绍了云原生边缘计算中的KubeEdge系统,该系统是一个开源系统,用于将容器化应用程序编排功能扩展到Edge的主机。它基于Kubernetes构建,并为网络应用程序提供基础架构支持。同时,KubeEdge具有离线模式、基于Kubernetes的节点、群集、应用程序和设备管理、资源优化等特点。此外,KubeEdge还支持跨平台工作,在私有、公共和混合云中都可以运行。同时,KubeEdge还提供数据管理和数据分析管道引擎的支持。最后,本文还介绍了KubeEdge系统生成证书的方法。 ... [详细]
  • 本文介绍了设计师伊振华受邀参与沈阳市智慧城市运行管理中心项目的整体设计,并以数字赋能和创新驱动高质量发展的理念,建设了集成、智慧、高效的一体化城市综合管理平台,促进了城市的数字化转型。该中心被称为当代城市的智能心脏,为沈阳市的智慧城市建设做出了重要贡献。 ... [详细]
  • 如何用UE4制作2D游戏文档——计算篇
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了如何用UE4制作2D游戏文档——计算篇相关的知识,希望对你有一定的参考价值。 ... [详细]
  • 本文讨论了如何使用IF函数从基于有限输入列表的有限输出列表中获取输出,并提出了是否有更快/更有效的执行代码的方法。作者希望了解是否有办法缩短代码,并从自我开发的角度来看是否有更好的方法。提供的代码可以按原样工作,但作者想知道是否有更好的方法来执行这样的任务。 ... [详细]
  • 海马s5近光灯能否直接更换为H7?
    本文主要介绍了海马s5车型的近光灯是否可以直接更换为H7灯泡,并提供了完整的教程下载地址。此外,还详细讲解了DSP功能函数中的数据拷贝、数据填充和浮点数转换为定点数的相关内容。 ... [详细]
  • IOS开发之短信发送与拨打电话的方法详解
    本文详细介绍了在IOS开发中实现短信发送和拨打电话的两种方式,一种是使用系统底层发送,虽然无法自定义短信内容和返回原应用,但是简单方便;另一种是使用第三方框架发送,需要导入MessageUI头文件,并遵守MFMessageComposeViewControllerDelegate协议,可以实现自定义短信内容和返回原应用的功能。 ... [详细]
  • 本文介绍了2015年九月八日的js学习总结及相关知识点,包括参考书《javaScript Dom编程的艺术》、js简史、Dom、DHTML、解释型程序设计和编译型程序设计等内容。同时还提到了最佳实践是将标签放到HTML文档的最后,并且对语句和注释的使用进行了说明。 ... [详细]
  • 使用C++编写程序实现增加或删除桌面的右键列表项
    本文介绍了使用C++编写程序实现增加或删除桌面的右键列表项的方法。首先通过操作注册表来实现增加或删除右键列表项的目的,然后使用管理注册表的函数来编写程序。文章详细介绍了使用的五种函数:RegCreateKey、RegSetValueEx、RegOpenKeyEx、RegDeleteKey和RegCloseKey,并给出了增加一项的函数写法。通过本文的方法,可以方便地自定义桌面的右键列表项。 ... [详细]
  • MySQL多表数据库操作方法及子查询详解
    本文详细介绍了MySQL数据库的多表操作方法,包括增删改和单表查询,同时还解释了子查询的概念和用法。文章通过示例和步骤说明了如何进行数据的插入、删除和更新操作,以及如何执行单表查询和使用聚合函数进行统计。对于需要对MySQL数据库进行操作的读者来说,本文是一个非常实用的参考资料。 ... [详细]
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社区 版权所有