我需要帮助写一个脚本,将采取以下数组['James',1,'sam', 16,84,'mason',197]
并把所有的数字array
和所有的名字到array
名称。每个数组将按顺序排列。拆分和排序这个数组
输出:数字[1,16,84,197]名称[ '詹姆斯', 'SAM', '梅森']
我需要帮助写一个脚本,将采取以下数组['James',1,'sam', 16,84,'mason',197]
并把所有的数字array
和所有的名字到array
名称。每个数组将按顺序排列。拆分和排序这个数组
输出:数字[1,16,84,197]名称[ '詹姆斯', 'SAM', '梅森']
既然你没有指定的编程语言,我建议蟒蛇,因为它是最简单的一个。我还假设16,84是一个16.84的浮点数。此外,如果阵列格式化,因为这只能[...,名称,数量,...]
a = ['james', 1, 'sam', 16.84, 'mason', 197]
names = []
numbers = []
for i in range(len(a)//2):
names += [a[i*2]]
numbers += [a[i*2+1]]
其中a[i*2]
是当前名称,a[i*2+1]
是当前数。
我不认为编程语言使用逗号作为十进制分隔符如同欧洲国家一样。 '16,84'是两个用逗号分隔的整数。 – Martin
使用Python我会做到以下几点:
array = ['james',1,'sam', 16, 84,'mason',197]
names = [s for s in array if isinstance(s, basestring)]
numbers = [i for i in array if isinstance(i, int)]
我猜测,在列表中的所有数字都是整数。如果您有什么样的数字(整型,长整型,浮点......),你可以做到以下几点:
numbers = [i for i in array if isinstance(i, (int, long, float, complex))]
var name = [], numbers = [];
var array = ['james',1,'sam', 16, 84,'mason',197];
array.forEach(function(item){
isNaN(item) ? name.push(item) : numbers.push(item);
});
这看起来像一所学校工作。自己解决它,否则你将永远学不到任何东西 – Martin
https://meta.stackoverflow.com/questions/334822/how-do-i-ask-and-answer-homework-questions – Martin