我正在尝试比较2个姓氏,看看哪个按字母顺序排在首位
如何提取[firstword:secondword]格式的任何字符串中的第二个单词?
答案 0 :(得分:1)
要提取姓氏,可以使用split
拆分名字。默认情况下,它将在空白处分割:
fullname = 'Grace Hopper'
first_name, last_name = fullname.split()
然后,按字母顺序进行比较,只需比较姓氏:
if last_name_1 < last_name_2:
...
或者,使用sorted
对名称列表中的所有名称进行排序:
fullnames = 'Grace Hopper', 'Katherine Johnson'
sorted_fullnames = sorted(fullnames, key=lambda fullname: fullname.split()[1])
答案 1 :(得分:1)
似乎您想从全名中获取姓氏。 如果一个人“ 1”的名字是“ ABC DEF”; 另一个人“ 2”的名称为“ PQR STU”;
您可以使用split()命令对字符串进行标记。
person1 = "ABC DEF"
person2 = "PQR STU"
name1 = person1.split(" ")
name2 = person2.split(" ")
现在结果将是
print(name1)
>>> ['ABC', 'DEF']
print(name2)
>>> ['PQR', 'STU']
答案 2 :(得分:0)
尝试一下:
s = 'Grace Hopper Katherine Johnson'
result = min(s.split()[1::2])
print(result)
输出:
Hopper
请注意,它区分大小写(A
<a
)。对于不区分大小写的版本:
result = min(s.split()[1::2], key=str.lower)
答案 3 :(得分:0)
使用.split
函数将字符串拆分为单词。
In [1]: a="Grace Hopper"
In [2]: b="Katherine Johnson"
In [3]: a.split()
Out[3]: ['Grace', 'Hopper']
In [4]: b.split()
Out[4]: ['Katherine', 'Johnson']
In [6]: a.split()[1]
Out[6]: 'Hopper'
In [8]: b.split()[1]
Out[8]: 'Johnson'
In [9]: a.split()[1] < b.split()[1]
Out[9]: True
答案 4 :(得分:0)
最合适的方法是使用split()函数:
使用sep作为分隔符,返回字符串中单词的列表 字符串。
如果未指定sep或为None,则使用不同的拆分算法 应用:连续空格的运行被视为单个 分隔符,结果开头将不包含任何空字符串 或结尾(如果字符串具有前导或尾随空格)。
例如:
>>> name = "Grace Hopper"
>>> name = name.split()
>>> name
>>> ["Grace", "Hopper"]
如果要按字母顺序比较几个字符串,只需使用比较运算符之一:
>>> name1 = "Stan"
>>> name2 = "Viktor"
>>> name1 > name2
>>> False
由于ord("S") < ord("V")
,您得到此结果,ord()内置函数返回一个整数,表示该字符的Unicode代码点。