Python 是否可以在定义点为数组文字下标?

Python 是否可以在定义点为数组文字下标?,python,c,syntax,Python,C,Syntax,我想在定义点下标一个数组文字,因为在初始访问之后我不需要数组: int func(int index) { return {1, 2, 3, 4, 5}[index]; } 注意:数组元素比本例更复杂。我也省略了边界检查。我只是好奇C语法是否允许这种构造/快捷方式 编译上述代码将导致: error: syntax error before `{' token Python相当于我在C中尝试实现的目标: def func(索引): 返回[1,2,3,4,5][索引] 您可以使用所谓的复合

我想在定义点下标一个数组文字,因为在初始访问之后我不需要数组:

int func(int index) {
   return {1, 2, 3, 4, 5}[index];
}
注意:数组元素比本例更复杂。我也省略了边界检查。我只是好奇C语法是否允许这种构造/快捷方式

编译上述代码将导致:

error: syntax error before `{' token
Python相当于我在C中尝试实现的目标:

def func(索引):
返回[1,2,3,4,5][索引]
您可以使用所谓的复合文字:

#包括
内部主(空){
printf(“%d\n”,
(int[]){1,2,3,4,5}[2]);
返回0;
}
参考C标准草案部分,您可以使用所谓的复合文字:

#包括
内部主(空){
printf(“%d\n”,
(int[]){1,2,3,4,5}[2]);
返回0;
}

请参阅C标准草稿部分

我不太明白这一点,但您可以使用C中的复合文字:

int func(int index) {
   return (int[]){1, 2, 3, 4, 5}[index];
}
更好、更具可读性的版本:

int func(int index) {
   const int[] local = {1, 2, 3, 4, 5};
   return local[index];
}

生成的机器代码在这两种情况下都是相同的。

我真的不明白这一点,但您可以使用C中的复合文字:

int func(int index) {
   return (int[]){1, 2, 3, 4, 5}[index];
}
更好、更具可读性的版本:

int func(int index) {
   const int[] local = {1, 2, 3, 4, 5};
   return local[index];
}
生成的机器代码在任何情况下都是相同的。

返回(int[]){1,2,3,4,5}[index]
返回(int[]){1,2,3,4,5}[index]