【发布时间】:2021-07-22 16:00:07
【问题描述】:
我正在尝试查找某个字符串是否在列表中。使用时:'if string in list' 我得到一个false。但是当我尝试'if string == list[28]' 时,我得到了true。
怎么来的?该字符串肯定在列表中。
import pandas as pd
import numpy as np
import scipy.stats as stats
import re
nba_df=pd.read_csv("assets/nba.csv")
cities=pd.read_html("assets/wikipedia_data.html")[1]
cities=cities.iloc[:-1,[0,3,5,6,7,8]]
nba_df = nba_df[(nba_df['year'] == 2018)]
nba_df['team'] = nba_df['team'].apply(lambda x: x.split('*')[0])
nba_df['team'] = nba_df['team'].apply(lambda x: x.split('(')[0])
nba_df['team'] = nba_df['team'].str.strip()
cityList = cities['Metropolitan area'].str.strip()
actualCities = []
for idx, city in enumerate(nba_df['team']):
if city == 'New Orleans Pelicans':
print('string: ', city.split()[0] + ' ' + city.split()[1])
print('cityList[28]: ', cityList[28])
print('is string in list: ', (city.split()[0] + ' ' + city.split()[1]) in cityList)
print('is string == list[28]: ', (city.split()[0] + ' ' + city.split()[1]) == cityList[28])
输出:
string: New Orleans
cityList[28]: New Orleans
is string in list: False
is string == list[28]: True
【问题讨论】:
-
我猜你现在正在有效地这样做:
(city.split()[0] + ' ') + (city.split()[1] in cityList)。所以我猜你想要这个:(city.split()[0] + ' ' + city.split()[1]) in cityList -
cityList[28] 的确切值是多少?我尝试复制但不能
-
请问list[28] / cityList[28]的值是多少。您的问题不完整。
-
对不起,如果确实提出了一个非常明确的问题。多年来没有在这里张贴任何东西。我尝试按照 Wolph 的建议添加括号。不幸的是它没有帮助。 cityList[28] 的值是新奥尔良。我添加了一行打印它。希望有帮助