这里有绝对的初学者问题。 我在mathematica中有两个列表。 第一个是由Table命令生成的:
Table[QP[[i]], {i, 10}]
生成列表:
{52.5, 45., 37.5, 30., 22.5, 15., 7.5, 0., -7.5, -15.}
第二个是范围
Range[0, 9, 1]
生成{0,1,2,3,4,5,6,7,8,9}
我需要将这些列入列表。即{{0,52.5},{1,45} ...}等。但我似乎无法得到它。你需要使用循环吗?因为我认为可以使用Table和Array命令生成我想要的内容。
由于
答案 0 :(得分:7)
Transpose
可能是你想要的:
list1 = {52.5, 45., 37.5, 30., 22.5, 15., 7.5, 0., -7.5, -15.}
list2 = Range[0, 9, 1]
Transpose[{list2, list1}]
给出
{{0,52.5},{1,35},{2,37.5},{3,30。},{4,22.5},{5,15},{6, 7.5},{7,0},{8,-7.5},{9,-15。}}
答案 1 :(得分:5)
Table
的第一个参数可以是任何表达式。您可以通过将列表指定为第一个参数来输出列表列表:
Table[{i-1, QP[[i]]}, {i, 10}]
(* {{0, QP[[1]]}, {1, QP[[2]]}, ... {8, QP[[9]]}, {9, QP[[10]]}} *)
答案 2 :(得分:5)
Thread[List[Range[0, 9], QP[[;; 10]]]]
答案 3 :(得分:4)
要完成方法的阐述,您可以使用MapIndexed
MapIndexed[{First[#2] - 1,#1}&, data]
,其中
data = {52.5, 45., 37.5, 30., 22.5, 15., 7.5, 0., -7.5, -15.}
或者,您可以使用MapThread
MapThread[List, {Range[0,9], data}]
虽然MapIndexed
更合适,因为它不需要您生成额外的列表。
我想说的最后一点是,您的代码Table[QP[[i]], {i, 10}]
暗示QP
本身就是一个列表。 (双括号[[ ]]
将其弃去。)如果这是正确的,那么Table
不是生成子集的最佳方式,您可以使用Part
({{3直接与[[ ]]
一起
QP[[ 1 ;; 10 ]]
或
QP[[ ;; 10 ]]
然后,您可以用这些表单中的任何一个替换代码的前几位中的data
。