慕丝7291255
通常如果你只想知道给定的字符串是否只包含字母(没有空格、标点符号、数字等),你可以简单地.isalpha()在字符串上使用 Python 的函数。例如,'john'.isalpha()返回True,但'johnny5'.isalpha()返回False。 但是,除非您将字符串描述为 Unicode,否则这对于带有 Unicode 字母的内容将失败。例如,'Köln'.isalpha()返回False,但u'Köln'.isalpha()返回True。不过,我认为这在 Python 3.x 和 Python 2.x 中可能有所不同。我在这里看到了另一个答案 used isdigit(),但这会传递给带有非字母数字符号的字符串,如john+doe或doe,john。如果您有一个格式正确的字符串列表,并且当且仅当它们都是严格按字母顺序排列时您想返回“True”,那么此函数应该可以满足您的需求:def check_list(mylist): for word in mylist: if not word.isalpha(): return False return True或等效但更短的方法:def check_list(mylist): return not False in [word.isalpha() for word in mylist]在各种字符串的列表上运行它:#!/usr/bin/python# -*- coding: latin-1 -*-def check_list(mylist): return not False in [word.isalpha() for word in mylist]mylist1 = ['Berlin', u'Köln', u'Munich']print("My strings: %s" % mylist1)print("All of my strings are alphabetic strings:")print check_list(mylist1)mylist2 = ['Berlin', u'Köln', u'Munich 2018']print("My other strings: %s" % mylist2)print("All of these strings are alphabetic strings:")print check_list(mylist2)# Output is:# My strings: ['Berlin', u'K\xf6ln', u'Munich']# All of my strings are alphabetic strings:# True# My other strings: ['Berlin', u'K\xf6ln', u'Munich 2018']# All of these strings are alphabetic strings:# False棘手的部分是你说你想要你的列表sys.arg(或者更具体地说, sublist sys.arg[1:])。挑战可能是将其放入适当的可识别字符串列表中,而不会出现烦人的UnicodeDecodeError错误。但是一旦你弄清楚了,就.isalpha()应该像这里一样工作。