Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python:在一行中应用lower()strip()和split()_Python_Python 3.x - Fatal编程技术网

Python:在一行中应用lower()strip()和split()

Python:在一行中应用lower()strip()和split(),python,python-3.x,Python,Python 3.x,在python中,定义变量的最快方法是什么?从拆分字符串到转换为小写和分条空格,还有什么方法 比如 args.where = 'Sn = Smith' a,v = args.where.lower().split('=').strip() 如果要在使用“拆分”创建列表后使用“带”,可以使用生成器表达式 where = 'Sn = Smith' a, v = (word.strip() for word in where.lower().split('=')) 如果要在使用“拆分”创建列表后使

在python中,定义变量的最快方法是什么?从拆分字符串到转换为小写和分条空格,还有什么方法

比如

args.where = 'Sn = Smith'
a,v = args.where.lower().split('=').strip()
如果要在使用“拆分”创建列表后使用“带”,可以使用生成器表达式

where = 'Sn = Smith'
a, v = (word.strip() for word in where.lower().split('='))
如果要在使用“拆分”创建列表后使用“带”,可以使用生成器表达式

where = 'Sn = Smith'
a, v = (word.strip() for word in where.lower().split('='))

您正在将一个字符串拆分为一个列表,并且无法删除该列表。您需要处理拆分中的每个元素:

a, v = (a.strip() for a in args.where.lower().split('='))
这将使用生成器表达式来处理每个元素,因此不会为剥离的字符串创建中间列表。如果表达式没有恰好生成两个值,Python将在这里抛出异常

在这种情况下,关注速度是。。毫无意义,除非您在一个非常大的元素体上执行此操作。不过,您可以使用map对上述内容进行微观优化:


但可读性方面的成本可能并不值得,不仅仅是两个元素。

您正在将字符串拆分为一个列表,并且无法删除该列表。您需要处理拆分中的每个元素:

a, v = (a.strip() for a in args.where.lower().split('='))
这将使用生成器表达式来处理每个元素,因此不会为剥离的字符串创建中间列表。如果表达式没有恰好生成两个值,Python将在这里抛出异常

在这种情况下,关注速度是。。毫无意义,除非您在一个非常大的元素体上执行此操作。不过,您可以使用map对上述内容进行微观优化:


但可读性方面的成本可能并不值得,不仅仅是两个元素。

您需要的是列表理解,以下是解决问题的示例

args.where = 'Sn = Smith'
a,v = [val.strip() for val in args.where.lower().split('=')]

您需要的是列表理解,以下是解决您的问题的示例

args.where = 'Sn = Smith'
a,v = [val.strip() for val in args.where.lower().split('=')]

如果变量中包含所有字符串,则可以使用re

输出:

sn
--
smith

如果变量中包含所有字符串,则可以使用re

输出:

sn
--
smith

无需使用列表理解,生成器表达式在不创建中间列表的情况下就可以了。感谢@MartijnPieters:的提示!无需使用列表理解,生成器表达式在不创建中间列表的情况下就可以了。感谢@MartijnPieters:的提示!有那么多人愿意帮忙解答。谢谢各位。太糟糕了,即使是一个活跃的问题仍然会得到反对票。这么多人愿意帮助回答。谢谢各位。太糟糕了,即使是一个活跃的问题仍然得到了否决票。