数组在函数调用后不更新值

时间:2019-06-27 21:49:32

标签: python arrays numpy

我需要数组具有我正在生成的package main import ( "bufio" "fmt" "log" "os" "regexp" ) func main() { fname, err := os.Open("C:\\Users\\UserName\\go\\src\\so56798431\\fname") if err != nil { log.Fatal(err) } defer fname.Close() re, err := regexp.Compile("findme") if err != nil { // handle error } scanner := bufio.NewScanner(fname) bytesRead := 0 for scanner.Scan() { b := scanner.Text() //fmt.Println(b) results := re.FindAllStringIndex(b, -1) for _, result := range results { fmt.Println(bytesRead + result[0]) } // account for UNIX EOL marker bytesRead += len(b) + 1 } if err := scanner.Err(); err != nil { log.Fatal(err) } } 坐标的所有可能组合。该数组仍打印为(x,y)的数组。

1

我希望在调用import numpy as np coordinates = np.ones([1000, 2]) def translate (x,y): dx = 5 dy = 5 return x + dx, y + dy for i in range(0, 100): for j in range(0, 100): (x, y) = translate(i, j) coordinates[i, j] = translate(x, y) np.append(coordinates, translate(x, y), axis=None) print(coordinates) 函数之后,坐标数组将接收正确的值,而不是translate s数组。

1 个答案:

答案 0 :(得分:0)

如果我的理解正确,您希望通过更改(x,y)x=0..99然后添加一些y=0..99dx可以生成所有可能的dy坐标分别设置为xy

与您的方法类似,一种方法是初始化一个空列表,然后只需在元组后面附加您定义的翻译函数即可:

coordinates = []

def translate (x,y):
    dx = 5
    dy = 5
    return x + dx, y + dy

for x in range(0, 100):
    for y in range(0, 100):
        coordinates.append(translate(x,y))

print(coordinates)

但是,可以对此进行改进。意识到您只是将dx添加到每个x,将dy添加到每个y,所以通过删除translate,可以用更简单的代码实现相同的结果功能:

coordinates = []
dx, dy = 5, 5

for x in range(dx, 100+dx):
    for y in range(dy, 100+dy):
        coordinates.append((x,y))

print(coordinates)

这将给您相同的正确答案。