基本Python循环和附加

时间:2017-07-07 13:56:09

标签: python

编写一个程序,该程序接受一个列表,并根据该元素的数据类型为列表中的每个元素打印一条消息。

您的节目输入始终是一个列表。对于列表中的每个项目,请测试其数据类型。如果该项是字符串,则将其连接到新字符串。如果是数字,请将其添加到运行总和中。在程序结束时打印字符串,数字和数组包含的分析。如果它只包含一种类型,则打印该类型,否则打印“混合”。

所以上面是我想要完成的。而且我对这一切都是新手,如果我有时没有意义,那就很抱歉。现在我只是尝试设置在我的列表中运行并将任何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)

5 个答案:

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