Python简单的程序迭代通过列表

时间:2014-08-24 02:46:46

标签: python

我是编程新手,我正在编写一个简单的程序进行测试。 这是代码:

list1 = [1,2,d,,t,h,7,8]

for x in list1:
    if x == 

我试图在我的列表中进行迭代并检查哪个项目是字符串,哪个是 一个数字(我知道它的基本,但我是新的)。那么写这条线的正确方法是什么 代码所有建议都有帮助

6 个答案:

答案 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