如何制作一个使用整个字符串而不是仅使用一个元素的 for 循环
How can I make a for loop that uses entire string instead of just one element
我有一个来自数据框的列表
print(crypto)
Ticker Site Date
0 Dogezilla-(DOGEZILLA)- Hotbit Fri, 29 Oct 2021 11:19:14 +0000
1 Epanus-(EPS)- Hotbit Fri, 29 Oct 2021 10:48:16 +0000
2 Gods-Unchained-(GODS)- OKEX Fri, 29 Oct 2021 08:43:12 +0000
3 LIQ-(LIQ)- OKEX Fri, 29 Oct 2021 08:33:13 +0000
4 Samoyedcoin-(SAMO)- OKEX Fri, 29 Oct 2021 07:33:11 +0000
5 GameZone-(GZONE)- OKEX Fri, 29 Oct 2021 07:23:11 +0000
6 Aurory-(AURY)- Kucoin Fri, 29 Oct 2021 06:53:12 +0000
7 BASIC-Token-(BASIC)- Kucoin Fri, 29 Oct 2021 06:43:15 +0000
8 Exeedme-(XED)- Kucoin Fri, 29 Oct 2021 06:38:12 +0000
9 Metahero-(HERO)- Kucoin Fri, 29 Oct 2021 06:23:11 +0000
名单是
Tick = list(crypto['Ticker'])
Tick = re.sub(r'-\(.*?\)-','', str(Tick))
['Dogezilla', 'Epanus', 'Gods-Unchained', 'LIQ', 'Samoyedcoin', 'GameZone', 'Aurory', 'BASIC-Token', 'Exeedme', 'Metahero', 'Smart-Valley', 'Dollar-Factory-Finance', 'YDragon', 'Sushi', 'YooShi', 'Gogeta-Inu', 'Songbird', 'OmiseGO', 'Synthetix-Network-Token', 'Sushi', 'PancakeSwap', 'SHIBA-INU', 'Axie-Infinity-Shards']
如果我做一个 for 循环说
[print(item) for item in Tick]
它将给出一个字母一个字母的输出
[
'
D
o
g
e
z
i
l
l
a
'
,
'
E
p
a
n
u
s
'
我想做的是制作一个看起来像
的for循环
[cg.get_price(ids=item, vs_currencies='usd') for item in Tick]
然而,这只是一个字母一个字母地破坏了功能。因此,如果我想要一个将列表中的每个字符串放入 ids 输入的函数。
编辑:使用 AKX 答案中的代码,并以此为基础:
crypto['Ticker'] = crypto['Ticker'].str.replace(r'-\(.*?\)-', '', regex=True)
crypto['Price'] = crypto['Ticker'].transform(lambda item: cg.get_price(ids=item, vs_currencies='usd'))
我认为您的代码没有按照您的意愿执行,因为您在执行 [=16= 时将 Tick
(list
)转换为 str
].而不是
Tick = list(crypto['Ticker'])
Tick = re.sub(r'-\(.*?\)-','', str(Tick))
做
Tick = [i.split('-(')[0] for i in crypto['Ticker']]
并对其进行迭代。
正确——鉴于 crypto
是一个 Pandas 数据框并且 crypto['Ticker']
指的是其中的一个系列,您可能只想
crypto['Ticker'] = crypto['Ticker'].replace(r'-\(.*?\)-', '', regex=True)
就地修复这些股票代码。
我有一个来自数据框的列表
print(crypto)
Ticker Site Date
0 Dogezilla-(DOGEZILLA)- Hotbit Fri, 29 Oct 2021 11:19:14 +0000
1 Epanus-(EPS)- Hotbit Fri, 29 Oct 2021 10:48:16 +0000
2 Gods-Unchained-(GODS)- OKEX Fri, 29 Oct 2021 08:43:12 +0000
3 LIQ-(LIQ)- OKEX Fri, 29 Oct 2021 08:33:13 +0000
4 Samoyedcoin-(SAMO)- OKEX Fri, 29 Oct 2021 07:33:11 +0000
5 GameZone-(GZONE)- OKEX Fri, 29 Oct 2021 07:23:11 +0000
6 Aurory-(AURY)- Kucoin Fri, 29 Oct 2021 06:53:12 +0000
7 BASIC-Token-(BASIC)- Kucoin Fri, 29 Oct 2021 06:43:15 +0000
8 Exeedme-(XED)- Kucoin Fri, 29 Oct 2021 06:38:12 +0000
9 Metahero-(HERO)- Kucoin Fri, 29 Oct 2021 06:23:11 +0000
名单是
Tick = list(crypto['Ticker'])
Tick = re.sub(r'-\(.*?\)-','', str(Tick))
['Dogezilla', 'Epanus', 'Gods-Unchained', 'LIQ', 'Samoyedcoin', 'GameZone', 'Aurory', 'BASIC-Token', 'Exeedme', 'Metahero', 'Smart-Valley', 'Dollar-Factory-Finance', 'YDragon', 'Sushi', 'YooShi', 'Gogeta-Inu', 'Songbird', 'OmiseGO', 'Synthetix-Network-Token', 'Sushi', 'PancakeSwap', 'SHIBA-INU', 'Axie-Infinity-Shards']
如果我做一个 for 循环说
[print(item) for item in Tick]
它将给出一个字母一个字母的输出
[
'
D
o
g
e
z
i
l
l
a
'
,
'
E
p
a
n
u
s
'
我想做的是制作一个看起来像
的for循环[cg.get_price(ids=item, vs_currencies='usd') for item in Tick]
然而,这只是一个字母一个字母地破坏了功能。因此,如果我想要一个将列表中的每个字符串放入 ids 输入的函数。
编辑:使用 AKX 答案中的代码,并以此为基础:
crypto['Ticker'] = crypto['Ticker'].str.replace(r'-\(.*?\)-', '', regex=True)
crypto['Price'] = crypto['Ticker'].transform(lambda item: cg.get_price(ids=item, vs_currencies='usd'))
我认为您的代码没有按照您的意愿执行,因为您在执行 [=16= 时将 Tick
(list
)转换为 str
].而不是
Tick = list(crypto['Ticker'])
Tick = re.sub(r'-\(.*?\)-','', str(Tick))
做
Tick = [i.split('-(')[0] for i in crypto['Ticker']]
并对其进行迭代。
正确——鉴于 crypto
是一个 Pandas 数据框并且 crypto['Ticker']
指的是其中的一个系列,您可能只想
crypto['Ticker'] = crypto['Ticker'].replace(r'-\(.*?\)-', '', regex=True)
就地修复这些股票代码。