我有一个从SQL查询中得到的名称列表。它们的形式如下:如何将字符串拆分为特定组?
[('Lastname Firtsname Middlename',), ('Lastname Firstname',)].
我在解析名称时遇到困难。我希望他们的形式:
Firstname Middlename Lastname , Firstname Lastname
有人可以告诉我最好的方法来实现这一目标吗?
我有一个从SQL查询中得到的名称列表。它们的形式如下:如何将字符串拆分为特定组?
[('Lastname Firtsname Middlename',), ('Lastname Firstname',)].
我在解析名称时遇到困难。我希望他们的形式:
Firstname Middlename Lastname , Firstname Lastname
有人可以告诉我最好的方法来实现这一目标吗?
假定输出的形式为
output = [('Lastname Firstname Middlename'), ('Lastname Firstname')]
然后
last_first_middle = output[0].split()
last_first = output[1].split()
parsed_output = [('{} {} {}').format(last_first_middle[1], last_first_middle[2], last_first_middle[0]), ('{} {}').format(last_first[1], last_first[0])]
这给输出
['Firstname Middlename Lastname', 'Firstname Lastname']
可以split
的list
并采取tuples
和split
的第一index
然后它出现找到另一个list
。之后,您可以通过新列表loop
并根据需要打印值。例如:
data = [('Lastname Firtsname Middlename',), ('Lastname Firstname',)]
first = [data[0][0].split()]
second = [data[1][0].split()]
for x, y in zip(first, second):
print x[1], x[2], x[0] + ' , ' + y[1], y[0]
输出:
Firtsname Middlename Lastname , Firstname Lastname
所以我们实际上有元组和列表的结构内内2串5个词语。
要访问每个单词,我们需要了解结构以及如何访问它们。
列表访问很简单:item[0]
和item[1]
现在,item[0]
将包含一个元组。要访问这个元组,我们需要另一个索引。因此item[0][0]
将包含我们的3个字符串,而item[1][0]
将包含我们的2个字符串。
现在我们只需要拆分字符串。 item[0][0].split()
会给我们一个包含3个条目的列表:['Lastname', 'Firtsname', 'Middlename']
。 item[1][0].split()
会给我们一个包含2个条目的列表:['Lastname', 'Firstname']
最后,我们需要创建我们的输出字符串。我们需要做的是访问,我们希望我们的访问字符串以在订货我们的2串。
我会扔下面的第一个密码,然后就可以使之更有效率你的心脏的内容
def FirstPass(input):
name_3part = input[0][0].split()
name_2part = input[1][0].split()
output_part1 = ' '.join(name_3part[1], name_3part[2], name_3part[0])
output_part2 = ' '.join(name_2part[1], name_2part[0])
output = ', '.join(output_part1, output_part2)
return output
您可以根据需要创建循环结构和条件输出,但对于您输入的请求的输出,这种简单易行的暴力破解代码可能比更具想象力的示例更好。
迭代列表,将每个元组项0
(即每个元组中的唯一项)分开并对其进行索引。该函数返回list
名称的倒数第一个倒数。如果需要修改。
names = [('Lastname Firtsname Middlename',), ('Lastname Firstname',)]
def formatnames(names):
new_names = []
for name in names:
n = name[0].split()
new_names.append('{} {}'.format(' '.join(n[1:]),n[0]))
return new_names
formatnames(names)
返回:
['Firtsname Middlename Lastname', 'Firstname Lastname']
要返回单字符串的所有名称,改变return
声明:
return ' , '.join(new_names)
将返回:
'Firtsname Middlename Lastname , Firstname Lastname'
OR以保持输出的tuple
一个list
,改变new_names.append
声明:
new_names.append(('{} {}'.format(' '.join(n[1:]),n[0]),))
将返回:
[('Firtsname Middlename Lastname',), ('Firstname Lastname',)]
斯普利特元组和指标安排?尝试一下? –
你有没有尝试过任何东西?你甚至不清楚你想要什么输出。一个字符串?另一个字符串重新排列的元组? –
这是两种不同的形式吗?或者用两种形式格式化相同的名字? –