关于python:打印每个列表元素及其数据类型

Print each list element together with its datatype

列表示例是

1
inList = [1.1, 2017, 3+4j, 'superbowl', (4, 5), [1,2,3,5,12],{"make":'BMW',"model":'X5'}]

基本上,我需要编写一个程序,它遍历一个列表,并打印每个列表元素及其数据类型。

刚接触过python,需要帮助才能开始。谢谢


你这样写道:"我需要编写一个程序,它遍历一个列表,并将每个列表元素及其数据类型打印出来。"你当时很难过,因为"我尝试过谷歌"。只能找到相关材料,但没有这方面的具体内容。"

你真正的问题是你还没有学会用谷歌搜索程序问题的答案。关键是将问题分解为子问题,并搜索如何解决每个问题:

  • 遍历列表
  • 获取数据类型
  • 打印元素和数据类型

我在谷歌上搜索了一下python的列表。第一个结果是练习32:循环和从学习python中列出硬方法,其中包括以下代码:

1
2
3
4
the_count = [1, 2, 3, 4, 5]
# this first kind of for-loop goes through a list
for number in the_count:
    print"This is count %d" % number

这一结果

1
2
3
4
5
This is count 1
This is count 2
This is count 3
This is count 4
This is count 5

现在我在谷歌上搜索python determine数据类型。第一个结果是堆栈溢出问题:如何确定python中的变量类型。以下是其中一个答案的相关片段:

使用type

1
2
>>> type(one)
<type 'int'>

现在我们知道了如何迭代以及如何获得一个类型。我们知道如何打印,但不知道如何同时打印两件东西。让我们谷歌搜索python print。第二个结果是Python2.7教程的输入和输出部分。事实证明,一次打印多个内容有很多种方法,但页面上的一个简单示例是。

1
2
>>> print 'We are the {} who say"{}!"'.format('knights', 'Ni')
We are the knights who say"Ni!"

把这些放在一起,我们得到:

1
2
for item in inList:
    print '{}  {}'.format(item, type(item))

哪些印刷品:

1
2
3
4
5
6
7
1.1  <type 'float'>
2017  <type 'int'>
(3+4j)  <type 'complex'>
superbowl  <type 'str'>
(4, 5)  <type 'tuple'>
[1, 2, 3, 5, 12]  <type 'list'>
{'make': 'BMW', 'model': 'X5'}  <type 'dict'>

这是一个非常基本的问题,您只需查看有关控制流的文档就可以轻松地回答这个问题。

1
2
for element in inList:
    print element, type(element)


你问题的简短回答是:

1
print map(lambda x: (x, type(x).__name__), inList)

这里使用的map函数有两个参数:

  • 要应用的功能;
  • 要迭代的数组。

此函数迭代数组的每个元素,并将给定的函数应用于每个元素。将应用程序的结果放入此函数返回的新数组中。

此外,这里还可以看到定义匿名函数的lambda关键字。它以x作为参数,然后返回包含该参数的对,以及该参数类型的字符串化。