所以我有一些像这样的代码:
DISTIL PLC 0.1P
ITACONIX PLC 1P
LIGHT SCIENCE TECHNOLOGIES HOLDINGS ORD 1P
CERILLION PLC 0.5P
CROSSWORD CYBERSECURITY PLC 0.5P
PAN AFRICAN RESOURCES PLC 1P
INLAND HOMES PLC 10P
SERICA ENERGY PLC USD0.10
GENEDRIVE PLC 1.5P
GATTACA PLC 1P
BIDSTACK GROUP PLC 0.5P
C4X DISCOVERY HOLDINGS PLC 1P
THINKSMART LIMITED ORD NPV (DI)
BRAND ARCHITEKTS GROUP PLC 5P
MTI WIRELESS EDGE LD ORD ILS0.01
PETROTAL CORPORATION COM SHS NPV (DI)
QUANTUM BLOCKCHAIN TECHNOLOGIES PLC 0.25P
HURRICANE ENERGY PLC 0.1P
DIURNAL GROUP PLC GBP0.05
VICTORIA PLC 5P
TRUFIN PLC 91P
DEWHURST GROUP PLC 'A'NON.VTG ORD 10P
BONHILL GROUP PLC 1P
BRAVE BISON GROUP PLC 0.1P
RAMBLER METALS & MINING PLC 1P
ARROW EXPLORATION CORP. COM SHS NPV (CDI)
VALIRX PLC 0.1P
VERTU MOTORS PLC 10P
MINOAN GROUP PLC 1P
VERSARIEN PLC 1P
TAVISTOCK INVESTMENTS PLC 1P
OVOCA BIO PLC EUR0.125 (CDI)
KERAS RESOURCES PLC 1P
EQTEC PLC EUR0.001 (CDI)
ELIXIRR INTERNATIONAL PLC 0.005P
ARMADALE CAPITAL PLC 0.1P
ECHO ENERGY PLC 0.25P
AGRITERRA LD ORD 10P
LONGBOAT ENERGY PLC 10P
FEEDBACK PLC 0.25P
PIPEHAWK PLC 1P
ARC MINERALS LD ORDS NPV (DI)
PROVEXIS PLC 0.1P
QUIZ PLC 0.3P
TINTRA PLC 1P
GYG PLC GBP0.002我要删除的所有PLC后的东西,例如1P,GBP0.002等
正如你在下面看到的,我用不同的组合做了一个for循环,但我似乎无法让它正常工作。
misc = (
"GBP0.01", "0.01P", "1P", "GBP1", "50P", "0.3P", "0.0", "0.02", "0.002P", "0.4P", "0.001P", "2.5P", "0.2P",
"10P", "0.8P","PLC 1P", "0.025P","025P"," 0.00" ,"0.5P", "USD0.01", "2P", "5P","0.0","0.","GBP00001","025P","20P","GBP005")
for i in misc:
for d in old:
q = d.replace(i, "")
if q not in old:
new.append(q)发布于 2022-08-18 20:42:51
我觉得你解决这个问题的方式太复杂了。
相反,请考虑:
data = [
'DISTIL PLC 0.1P',
'ITACONIX PLC 1P',
'LIGHT SCIENCE TECHNOLOGIES HOLDINGS ORD 1P',
'CERILLION PLC 0.5P',
'CROSSWORD CYBERSECURITY PLC 0.5P',
'PAN AFRICAN RESOURCES PLC 1P',
'INLAND HOMES PLC 10P',
'SERICA ENERGY PLC USD0.10',
'GENEDRIVE PLC 1.5P',
'GATTACA PLC 1P',
'BIDSTACK GROUP PLC 0.5P',
'C4X DISCOVERY HOLDINGS PLC 1P',
'THINKSMART LIMITED ORD NPV (DI)',
'BRAND ARCHITEKTS GROUP PLC 5P',
'MTI WIRELESS EDGE LD ORD ILS0.01',
'PETROTAL CORPORATION COM SHS NPV (DI)',
'QUANTUM BLOCKCHAIN TECHNOLOGIES PLC 0.25P',
'HURRICANE ENERGY PLC 0.1P',
'DIURNAL GROUP PLC GBP0.05',
'VICTORIA PLC 5P',
'TRUFIN PLC 91P',
'DEWHURST GROUP PLC ''A''NON.VTG ORD 10P',
'BONHILL GROUP PLC 1P',
'BRAVE BISON GROUP PLC 0.1P',
'RAMBLER METALS & MINING PLC 1P',
'ARROW EXPLORATION CORP. COM SHS NPV (CDI)',
'VALIRX PLC 0.1P',
'VERTU MOTORS PLC 10P',
'MINOAN GROUP PLC 1P',
'VERSARIEN PLC 1P',
'TAVISTOCK INVESTMENTS PLC 1P',
'OVOCA BIO PLC EUR0.125 (CDI)',
'KERAS RESOURCES PLC 1P',
'EQTEC PLC EUR0.001 (CDI)',
'ELIXIRR INTERNATIONAL PLC 0.005P',
'ARMADALE CAPITAL PLC 0.1P',
'ECHO ENERGY PLC 0.25P',
'AGRITERRA LD ORD 10P',
'LONGBOAT ENERGY PLC 10P',
'FEEDBACK PLC 0.25P',
'PIPEHAWK PLC 1P',
'ARC MINERALS LD ORDS NPV (DI)',
'PROVEXIS PLC 0.1P',
'QUIZ PLC 0.3P',
'TINTRA PLC 1P',
'GYG PLC GBP0.002']
for d in data:
print(d.split("PLC")[0])
# or with list comprehension:
data = [d.split("PLC")[0] for d in data] 或者,如果希望保留字符串中的PLC,可以使用regex:
import re
data = [
'DISTIL PLC 0.1P',
'ITACONIX PLC 1P',
'LIGHT SCIENCE TECHNOLOGIES HOLDINGS ORD 1P',
'CERILLION PLC 0.5P',
'CROSSWORD CYBERSECURITY PLC 0.5P',
'PAN AFRICAN RESOURCES PLC 1P',
'INLAND HOMES PLC 10P',
'SERICA ENERGY PLC USD0.10',
'GENEDRIVE PLC 1.5P',
'GATTACA PLC 1P',
'BIDSTACK GROUP PLC 0.5P',
'C4X DISCOVERY HOLDINGS PLC 1P',
'THINKSMART LIMITED ORD NPV (DI)',
'BRAND ARCHITEKTS GROUP PLC 5P',
'MTI WIRELESS EDGE LD ORD ILS0.01',
'PETROTAL CORPORATION COM SHS NPV (DI)',
'QUANTUM BLOCKCHAIN TECHNOLOGIES PLC 0.25P',
'HURRICANE ENERGY PLC 0.1P',
'DIURNAL GROUP PLC GBP0.05',
'VICTORIA PLC 5P',
'TRUFIN PLC 91P',
'DEWHURST GROUP PLC ''A''NON.VTG ORD 10P',
'BONHILL GROUP PLC 1P',
'BRAVE BISON GROUP PLC 0.1P',
'RAMBLER METALS & MINING PLC 1P',
'ARROW EXPLORATION CORP. COM SHS NPV (CDI)',
'VALIRX PLC 0.1P',
'VERTU MOTORS PLC 10P',
'MINOAN GROUP PLC 1P',
'VERSARIEN PLC 1P',
'TAVISTOCK INVESTMENTS PLC 1P',
'OVOCA BIO PLC EUR0.125 (CDI)',
'KERAS RESOURCES PLC 1P',
'EQTEC PLC EUR0.001 (CDI)',
'ELIXIRR INTERNATIONAL PLC 0.005P',
'ARMADALE CAPITAL PLC 0.1P',
'ECHO ENERGY PLC 0.25P',
'AGRITERRA LD ORD 10P',
'LONGBOAT ENERGY PLC 10P',
'FEEDBACK PLC 0.25P',
'PIPEHAWK PLC 1P',
'ARC MINERALS LD ORDS NPV (DI)',
'PROVEXIS PLC 0.1P',
'QUIZ PLC 0.3P',
'TINTRA PLC 1P',
'GYG PLC GBP0.002']
for d in data:
print(re.search(r'.*\sPLC|.*', d).group(0))
#or with list comprehension
data = [re.search(r'.*\sPLC|.*', d).group(0) for d in data]发布于 2022-08-18 20:43:38
如果我说得对,“蒸馏PLC 0.1P”应该变成“蒸馏”,以此类推。正如@mkrieger1 1所建议的,最简单的解决方案是在'PLC‘上使用拆分,比如:new = [s.split('PLC')[0].strip() for s in old]。.strip()只是在结尾删除空格,所以你得到的是“提拔”而不是“蒸馏”。
您可能需要进一步拆分,以防old是单个字符串而不是列表。例如,如果您有这样的东西:
old = "DISTIL PLC 0.1P
ITACONIX PLC 1P
LIGHT SCIENCE TECHNOLOGIES HOLDINGS ORD 1P"
old_list = old.split('\n')
new = [s.split('PLC')[0].strip() for s in old_list]https://stackoverflow.com/questions/73409038
复制相似问题