Python中使用for循环的数组上的.strip()不起作用?

2024-06-26 08:30:37 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试使用.strip()清除数组中元素前后的空格,如何使其正常工作,我目前有:

ing1 = ['Nivea', 'Water,   GlyCerin, Caprylic/Capric Triglyceride, Squalane, Coco-Caprylate/ Caprate']

    ing1list = []
    for ele in ing1[1:]:
        ing1list.extend(ele.strip().lower().split(','))
    print(ing1list)

我的输出几乎正确,但在第二个元素之前还有一个空格:

['water', '     glycerin', ' caprylic/capric triglyceride', ' squalane', ' coco-caprylate/ caprate']

Tags: 元素数组strip空格cocowatereleing1
3条回答

以下是一个简单的解决方案:

ing1 = ['Nivea, Water,   GlyCerin, Caprylic/Capric Triglyceride, Squalane, Coco-Caprylate/ Caprate']
ing1list = [x.strip() for x in ing1[0].split(",")[1:]]
print(ing1list)

您可以首先拆分字符串,该字符串返回一个列表,然后可以为除第一个元素之外的所有元素提供[1:],并使用.strip()方法删除空格

输出:

['Water', 'GlyCerin', 'Caprylic/Capric Triglyceride', 'Squalane', 'Coco-Caprylate/ Caprate']

您不需要将字符串放入数组中。 所以我建议你这样做:

ing1 = 'Nivea, Water,   GlyCerin, Caprylic/Capric Triglyceride, Squalane, Coco-Caprylate/ Caprate'

ing1list = list(map(str.strip, ing1.lower().split(',')))

您需要从逻辑上将代码拆分为多个部分,首先需要从字符串中获取数组的正确值,这将被迭代以剥离,这可以通过使用列表理解来实现

print([ looper.lower().strip() for looper in ing1[0].split(',')])

输出:

['Nivea', 'Water', 'GlyCerin', 'Caprylic/Capric Triglyceride', 'Squalane', 'Coco-Caprylate/ Caprate']

或者需要使用Lambda、filter、map来更好地组织

相关问题 更多 >