编写一个程序,该程序接受一个列表,并根据该元素的数据类型为列表中的每个元素打印一条消息。
您的节目输入始终是一个列表。对于列表中的每个项目,请测试其数据类型。如果该项是字符串,则将其连接到新字符串。如果是数字,请将其添加到运行总和中。在程序结束时打印字符串,数字和数组包含的分析。如果它只包含一种类型,则打印该类型,否则打印“混合”。
所以上面是我想要完成的。而且我对这一切都是新手,如果我有时没有意义,那就很抱歉。现在我只是尝试设置在我的列表中运行并将任何str附加到字符串列表,并将任何int添加到我的num列表中。我已经尝试了很多方法并阅读文档,并试图寻求帮助,但我要么误读了东西,要么只是搜索错误的东西。任何帮助将不胜感激。
stuff = ['magical unicorns',19,'hello',98.98,'world']
string = []
num = []
for i in range(len(stuff)):
if isinstance(i,str):
string.append(value,i)
if isinstance(i,int):
num.append(i)
print (string)
print (num)
答案 0 :(得分:0)
您可以使用列表理解来获得快速,简洁的解决方案:
stuff = ['magical unicorns',19,'hello',98.98,'world']
s = ''.join(i for i in stuff if isinstance(i, str))
a = sum(i for i in stuff if isinstance(i, int) or isinstance(i, float))
print(s)
print(a)
if len(s) > 0 and a > 0:
print("mixed")
elif len(s) > 0 and a == 0:
print("string")
elif len(s) == 0 and a > 0:
print("integer")
输出:
magical unicornshelloworld
19
mixed
答案 1 :(得分:0)
stuff = ['magical unicorns',19,'hello',98.98,'world']
string = []
num = []
for i in stuff:
if isinstance(i,str):
string.append(i)
if isinstance(i,int):
num.append(i)
print (string)
print (num)
答案 2 :(得分:0)
for i in range(len(stuff))
这将迭代列表的索引。因此,您只会将此索引附加到列表num
。
执行相同的循环,但将for i in range(len(stuff))
替换为for i in stuff
。有了这个,您将遍历列表元素。
答案 3 :(得分:0)
这应该可以解决问题。
stuff = ['magical unicorns',19,'hello',98.98,'world']
s = ""
num = 0
hasnum = False
hasstr = False
for i in stuff:
if isinstance(i, str):
s += i
hasstr = True
if isinstance(i, int):
num += i
hasnum = True
print (string)
print (num)
if hasnum and not hasstr:
print "Only ints"
elif hasstr:
print "Only strs"
else:
print "Mixed"
答案 4 :(得分:0)
将python for循环视为其他语言中的foreach循环。所以我们想迭代填充列表中的每个项目。 然后,我们想要运行字符串和数字的总计。 这是一个简单的循环来完成这个:)
from numbers import Number
stuff = ['magical unicorns',19,'hello',98.98,'world']
running_string = ''
running_total = 0
for item in stuff:
if isinstance(item, basestring):
running_string += item
if isinstance(item, Number):
running_total += item
print running_total
print running_string
if running_string and running_total:
print 'mixed'
elif running_string:
print 'string'
elif running_total:
print 'int'
else:
print 'empty'