【发布时间】:2021-06-17 17:39:15
【问题描述】:
假设我有一个列表,我想访问列表中的所有项目,它是一个字符串,在项目中,我想访问一个特定的元素,我将如何做到这一点。下面给出的列表是从 Flipkart 抓取的数据。
['₹237₹1,59985% off\nOr Pay ₹225 + \n 12',
'₹570₹79928% off\nOr Pay ₹541 + \n 29',
'₹621₹79922% off\nOr Pay ₹589 + \n 32',
'₹299₹2,59988% off',
'₹237₹1,59985% off\nOr Pay ₹225 + \n 12',
'₹331₹1,59979% off\nOr Pay ₹314 + \n 17',
'₹733₹89918% off\nOr Pay ₹696 + \n 37',
'₹674₹89925% off\nOr Pay ₹640 + \n 34',
'₹331₹2,59987% off\nOr Pay ₹314 + \n 17',
'₹213₹1,19982% off',
'₹281₹1,99985% off',
'₹237₹1,59985% off\nOr Pay ₹225 + \n 12',
'₹404₹1,99979% off',
'₹249₹99975% off',
'₹199₹99980% off',
'₹499₹2,25677% off',
'₹246₹1,49983% off\nOr Pay ₹233 + \n 13',
'₹156₹75079% off',
'₹399₹1,99980% off',
'₹251₹1,19979% off',
'₹399₹1,99980% off',
'₹252₹1,49983% off',
'₹319₹1,49978% off',
'₹349₹1,19970% off',
'₹217₹99978% off',
'₹214₹69969% off',
'₹499₹2,22577% off',
'₹399₹1,49973% off',
'₹282₹1,14575% off',
'₹1,085₹1,29916% off\nOr Pay ₹1,030 + \n 55',
'₹209₹99979% off',
'₹210₹1,46685% off',
'₹449₹2,22579% off',
'₹265₹1,29979% off',
'₹227₹78571% off',
'₹199₹99980% off',
'₹319₹1,99884% off',
'₹449₹1,99577% off',
'₹449₹1,99977% off',
'₹249₹59958% off']
从上面的列表中,我想从每个项目(例如 ₹449)中获取输出,其中我想获取第二个卢比符号之前的元素,例如从:'₹1,085₹1,29916% 折扣\n或支付 ₹1,030 + \n 55' ;我想要 ₹1,085 的商品。
谁能帮我解决这个问题?
【问题讨论】:
-
您可以在列表推导中使用正则表达式。
-
x=input("Enter Price: "),如果您不想要初始价格,然后是d=[xy[len("₹"+x):] for xy in l1 if xy.startswith("₹"+x)]或d=[xy for xy in l1 if xy.startswith("₹"+x)] -
试试这个 --> ["₹"+x.split("₹")[1] for x in a] where a=[...] 包含您的值的列表
标签: python string list web-scraping iteration