修改python列表中的元素

时间:2015-02-02 20:13:29

标签: python

我是python编程的新手,我已经导入了一个文件并将其加载到列表中。问题是我想删除列表中每个元素中第二个分隔符后的所有内容。

with open(schemaFile) as f:
    schema = [x.strip('\n') for x in f.readlines()]
    schema = schema[2:]

以下是示例输出:

./ingestor.py -i txt.txt -s kh_offers_schema4.txt4 -o txt.txt
['record_id|string|FALSE|1|', 'offer_id|decimal|FALSE|1|1,1', 'decision_id|decimal|FALSE|1|1,1', 'offer_type_cd|integer|FALSE|1|1,1', 'promo_id|decimal|FALSE|1|1,1', 'pymt_method_type_cd|decimal|FALSE|1|1,1', 'cs_result_id|decimal|FALSE|1|1,1', 'cs_result_usage_type_cd|decimal|FALSE|1|1,1', 'rate_index_type_cd|decimal|FALSE|1|1,1', 'sub_product_id|decimal|FALSE|1|1,1', 'campaign_id|decimal|FALSE|1|1,1', 'market_cell_id|decimal|FALSE|1|1,1', 'assigned_offer_id|string|FALSE|1|', 'accepted_offer_flag|string|FALSE|1|', 'current_offer_flag|string|FALSE|1|', 'offer_good_until_date|string|FALSE|1|', 'rescindable_days|decimal|FALSE|1|1,1', 'rescinded_date|string|FALSE|1|', 'amount|decimal|FALSE|1|1,1', 'max_amount|decimal|FALSE|1|1,1', 'amount_financed|decimal|FALSE|1|1,1', 'down_pymt|decimal|FALSE|1|1,1', 'rate|decimal|FALSE|1|1,1', 'term_mm|decimal|FALSE|1|1,1', 'origination_fee_amount|decimal|FALSE|1|1,1', 'origination_fee_rate|decimal|FALSE|1|1,1', 'finance_charge|decimal|FALSE|1|1,1', 'nbr_of_pymts|decimal|FALSE|1|1,1', 'pymt|decimal|FALSE|1|1,1', 'total_pymts|decimal|FALSE|1|1,1', 'first_pymt_date|string|FALSE|1|', 'contract_date|string|FALSE|1|', 'acct_nbr|string|FALSE|1|', 'acct_nbr_assigned_dttm|string|FALSE|1|', 'acct_expiration_dttm|string|FALSE|1|', 'offer_desc|string|FALSE|1|', 'min_rate|decimal|FALSE|1|1,1', 'max_rate|decimal|FALSE|1|1,1', 'min_amount|decimal|FALSE|1|1,1', 'annual_fee_amount|decimal|FALSE|1|1,1', 'annual_fee_waived_mm|decimal|FALSE|1|1,1', 'late_fee_percent|decimal|FALSE|1|1,1', 'late_fee_min_amount|decimal|FALSE|1|1,1', 'offer_sales_script|string|FALSE|1|', 'offer_order|decimal|FALSE|1|1,1', 'presentable_flag|string|FALSE|1|', 'index_rate|decimal|FALSE|1|1,1', 'insrt_dttm|string|FALSE|1|', 'insrt_usr_id|string|FALSE|1|', 'chng_dttm|string|FALSE|1|', 'chng_usr_id|string|FALSE|1|', 'actv_flag|string|FALSE|1|', 'correlation_id|string|FALSE|1|', 'offer_status_type_cd|string|FALSE|1|', 'presentation_instrument_nbr|string|FALSE|1|']

我只想要: ['record_id | string','offer_id | decimal'等等。

关于如何实现这一目标的任何想法?

1 个答案:

答案 0 :(得分:0)

SEP = "|"

with open("txt.txt") as inf:
    lines = (line.rstrip() for line in inf)
    items = (line.split(SEP, 2) for line in lines)
    results = [SEP.join(item[:2]) for item in items]