比较字符串元素并检查最后一个字符是否不同

2024-09-28 16:19:06 发布

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

如何格式化元素的最后一个字符

> Apple0 = 2,  Apple1 = 3, Apple2 = 8, Mango = 10, Banana = 15, Grape0 = 11,
> Grape1 = 20 Potato = 5

Apple[0] = 2,  Apple[1] = 3, Apple[2] = 8, Mango = 10, Banana = 15, Grape[0] = 11, Grape[1] = 20, Potato = 5

我在网上找到了一些使用pandas的例子,但不幸的是,我无法将panda插件安装到我的pycharm中


Tags: 元素applepandas字符panda例子potatobanana
3条回答

看起来你有一个表格的文件

Apple0 = 2,  Apple1 = 3, Apple2 = 8, Mango = 10, Banana = 15, Grape0 = 11,
Grape1 = 20 Potato = 5

你想把它改成

Apple[0] = 2,  Apple[1] = 3, Apple[2] = 8, Mango = 10, Banana = 15, Grape[0] = 11,
Grape[1] = 20 Potato = 5

简单:

import re

token_regex = r'([A-Za-z]+)(\d+)'
replacement_regex = r'\1[\2]'

updated_string = re.sub(
    token_regex, 
    replacement_regex, 
    file.read()
 )

 print updated_string

输出:

 Apple[0] = 2,  Apple[1] = 3, Apple[2] = 8, Mango = 10, Banana = 15, Grape[0] = 11,
 Grape[1] = 20 Potato = 5

试试这个:

import re
import pprint


loaded_items = {
    'Apple0': 2,
    'Apple1': 3,
    'Apple2': 8,
    'Mango':10,
    'Banana': 15,
    'Grape0': 11,
    'Grape1': 20,
    'Potato': 5
}
d = {}
for key, val in loaded_items.items():
    match = re.search(r'\d+$', key)
    if match:
        endchar = match.group()
        key = key.rstrip(endchar)
        d.setdefault(key, [])
        d[key].append(val)
    else:
        d[key] = val

pprint.pprint(d)

输出

{'Apple': [8, 2, 3], 'Banana': 15, 'Grape': [11, 20], 'Mango': 10, 'Potato': 5}

试试这个:

from collections import defaultdict

loaded_items = {
    'Apple0': 2,
    'Apple1': 3,
    'Apple2': 8,
    'Mango':10,
    'Banana': 15,
    'Grape0': 11,
    'Grape1': 20,
    'Potato': 5
}
items = defaultdict(dict)
for k, v in loaded_items.items():
    key_letter = ''.join(filter(str.isalpha, k))
    items[key_letter][len(items[key_letter]) + 1] = v
print(items)

相关问题 更多 >