【问题标题】:Accessing string elements of a list访问列表的字符串元素
【发布时间】: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


【解决方案1】:

我希望下面的示例代码可以满足您的用例-

my_list=['₹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']
 
 
result_list=[]
for element in my_list:
    for i in range(1,len(element)-1):
        if(element[i]=='₹'):
            result_list.append(element[0:i])
            break
print(result_list)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-04-06
    • 2019-12-13
    相关资源
    最近更新 更多