我是编程新手,我正在编写一个简单的程序进行测试。 这是代码:
list1 = [1,2,d,,t,h,7,8]
for x in list1:
if x ==
我试图在我的列表中进行迭代并检查哪个项目是字符串,哪个是 一个数字(我知道它的基本,但我是新的)。那么写这条线的正确方法是什么 代码所有建议都有帮助
答案 0 :(得分:3)
在Python中,使用内置isinstance(variable, type)
来测试变量是否属于给定类型。
type
变量也可以是要测试的几种类型的元组。
答案 1 :(得分:1)
你的清单有点搞砸了。如果这些字母应该是字符串,它应该如下所示:
list1 = [1,2,'d','t','h',7,8]
否则他们指的是变量。
检查号码
for x in list1:
if isinstance(x, int):
...
检查字符串
for x in list1:
if isinstance(x, str):
...
<强>组合强>
for x in list1:
if x.isinstance(x, int):
....
elif isinstance(x, str)L
....
答案 2 :(得分:1)
这应该打印列表中每个元素的类型
for item in list1:
print type(item)
答案 3 :(得分:0)
假设您的列表包含纯数字和字符串:
for x in list1:
if type(x) == str:
# do something
else:
# do something for numbers
答案 4 :(得分:0)
由于每个人都给出了与我原来相似的答案(见下文),我会尝试其他的东西。你可以轻松制作2个用Python和列表推理分隔整数和字符串的列表:
strings = [x for x in list1 if isinstance(x, str)]
intlist = [x for x in list1 if isinstance(x, int)]
使用列表推导使代码更紧凑,更易于理解。
旧回应:
list1 = [1, 4, 5, '5', '3', 3, 'a']
for x in list1:
if(isinstance(x, str)):
print(str(x) + ' is a string.')
else:
print(str(x) + ' is not a string.')
答案 5 :(得分:-1)
你可以试试这个,
list1=[1,2,'d','t','h',7,8]
for data in list1:
if type(data) is str:
#do something with it
elif type(data) is int:
#do something with it
你可以尝试这样的东西或python解释器中其他答案中提到的任何方法,看它是否有效 -
>> type(1) is str
你会得到
>> False