如何用字母小写字母,Python

时间:2011-08-05 03:15:10

标签: python list

我想制作一个不会大写字母的函数。

我以为我能做到 if x in caps
cap是所有大写字母的列表,我让它返回列表中该字母所在的位置,我可以用小写替换它。

我该怎么做?

感谢。

4 个答案:

答案 0 :(得分:6)

为什么不使用内置的“低级”

a = 'aBcDeFg'
print a.lower() # abcdefg

如果这不起作用,您可以随时迭代然后使用ord和chr:

"".join(
  # if i is between A and Z change it to between a and z
  [chr(ord(i)+32) if 65<= ord(i) <= 90 
  # otherwise leave it as is
  else i for i in a])

答案 1 :(得分:1)

如果您只想将字符串设为小写,请尝试:

>>> import string
>>> myString = "abcDEfGHiJ"
>>> myString.lower()
'abcdefghij'

如果你想要每个小写字母的索引(无论出于何种原因):

>>> [pos for pos, let in enumerate(myString) if 65 <= ord(let) <= 90]
[3, 4, 6, 7, 9]

答案 2 :(得分:1)

假设这不是某种学术问题,您可以使用标准字符串lower()方法。

x.lower()

如果是练习,你可以将字符翻转为int,检查它是否在ASCII大写字母范围内,如果是,则添加32以进行转换。这当然只适用于ASCII字母。

x = chr(ord(x)+32)如果ord(x)> 64和ord(x)&lt; 91其他x

不确定除了图书馆文档之外还有什么可说的:http://docs.python.org/library/stdtypes.html

另外,值得注意的是,当你在一个字符串中使用一个字符时,确实没有字符类型,只有数字和字符串,它实际上是一个长度为1的字符串。另外,不要忘记字符串是不可变的

答案 3 :(得分:0)

Python有一个函数 - str.lower()。 http://docs.python.org/library/stdtypes.html#str.lower

如果您真的想自己编写函数,Python的字符串库有一个ASCII小写字母列表,但您可以利用ASCII字符实际上只是int值的事实,并为每个值为65的字母添加32和90(65 = A和90 = Z中的Z,但Z和a之间有一些标点值。)无需解析列表!