根据2个不同变量python中的值从数组值创建列表

时间:2018-05-13 22:31:10

标签: python

我有一个问题我不知道如何制定这个但我提供了一些解释。我已经生成了一个字符串列表,例如s = ["BB", "BB", "CD", "BA"]

s的每个成员都可以生成b = "B""C""D""A"中的任何一个,即只有一个值作为第一个变量和b的值的任意组合b的单个值作为变量a,例如a = ["B", "A", "D"]a = ["B"]a = ["B", "C"]作为第二个值。即它可以是不超过3的值或单个值的任何组合。 b = "B""C""D"

我有一系列课程&nbspy.ndarray'价值观我希望将值分配给给定变量,例如myvarmyvar2,具体取决于ab中的值。数组的长度为s。例如[[ 1, 1, 0, 1], [ 0, 1, 0, 2], [ 0, 0, 0, 3], [ 1, 1, 0, 1]],数组中的每一列代表A, B, C, D但不包含在数组中。

步骤:

for each member of s i.e length of s:
    if the member generates value of b as B and value of a as B, A, C:
        check 2nd column in matrix, pick the value and add it to my_variable
        check columns 2, 1 and 3 representing B,A,C and add the values to my_variable
        output result for each member of s because each member of s will generate a and b

到目前为止我做了什么:

s = ["BB", "BB", "CD", "BA"]
n = [[ 1, 1, 0, 1],[ 0, 1, 0, 2],[ 0, 0, 0, 3],[ 1, 1, 0, 1]]
a = ["B", "A", "D"]
b = "B"
myvar = []
myvar2 =[]
for x in s:
    for y in a:
        for i in n:
            if y == "A":
                myvar.append(i[0])
            elif y == "B":
                myvar.append(i[1])
            elif y == "C":
                myvar.append(i[2])
            elif y == "D":
                myvar.append(i[3])
print(myvar)

如何为b选择值并附加到myvar2,然后为myvar中的每个项目分别合并myvar2s?到目前为止我得到的结果是错误的,因为我将myvar中的所有值都作为一个而不是长度为s。合并后我想要的结果是:

对于每个s成员,

result = [b的值,a的值]。例如,a = [[1, 0, 1], [1, 0, 0], [0, 1, 1], [0, 1, 1]] val的val为b = [1]。

最终结果= [[1, 1, 0, 1], [1, 1, 0, 0], [1, 0, 1, 1], [1, 0, 1, 1]]。与s相同的长度。

谢谢

0 个答案:

没有答案