当前位置: 首页 > news >正文

多数pythoneer只知有列表list却不知道python也有array数组

数组和列表

Python中数组和列表是不同的,我敢断言大多数的pythoneer只知道有列表list,却不知道python也有array数组。列表是一个包含不同数据类型的元素集合,而数组是一个只能含相同数据类型的元素集合。

Python的array库是一个提供数组操作的模块,它提供了一种用于存储和处理多个相同类型元素的容器。与Python的列表list相比,数组array在存储和操作大量数值型数据时更为高效,因为它在内存中以连续的方式存储数据,占用的内存空间更小。

数组创建

array(typecode [, initializer]) -> array

返回一个新数组,该数组的项受类型代码的限制,并通过可选的初始值设定项值进行初始化,该值必须是列表、字符串或可在适当类型的元素上迭代。

数组表示基本值,其行为与列表非常相似,只是其中存储的对象类型受到约束。类型是在对象创建时使用类型代码指定的,该代码是单个字符。

类型代码 typecode

类型C类型最小字节
'b'signed integer 1
'B'unsigned integer   1
'u'Unicode character  2
'h'signed integer 2
'H'unsigned integer   2
'i'signed integer 2
'I'unsigned integer   2
'l'signed integer 4
'L'unsigned integer   4
'q'signed integer 8
'Q'unsigned integer   8
'f'floating point 4
'd'floating point 8

创建数组

import array  
arr = array.array('i', [1, 2, 3, 4, 5])  # 创建一个整数类型的数组
arr = array.array('u', 'abcde')  # 创建一个字符类型的数组

类型属性

import array  
arr = array.array('i', [1, 2, 3, 4, 5])
print(arr.typecode)   # 打印数组类型 i

数组切片

与列表用法相同:

>>> arr = array.array('i', [1, 2, 3, 4, 5])
>>> arr[0]
1
>>> arr[2]
3
>>> arr[-1]
5
>>> arr[:3]
array('i', [1, 2, 3])
>>> arr[3:]
array('i', [4, 5])
>>> arr[:-1]
array('i', [1, 2, 3, 4])
>>> arr[::-1]
array('i', [5, 4, 3, 2, 1])
>>> arr[1::2]
array('i', [2, 4])
>>> arr[0::2]
array('i', [1, 3, 5])

类型转换

整数数组可以转换到浮点数数组,反之不行。

>>> arr1 = array.array('i', [1, 2, 3, 4, 5])
>>> arr1
array('i', [1, 2, 3, 4, 5])
>>> arr2 = array.array('f', arr1)
>>> arr2
array('f', [1.0, 2.0, 3.0, 4.0, 5.0])
>>> arr3 = array.array('i', arr2)
Traceback (most recent call last):
  File "<pyshell#77>", line 1, in <module>
    arr3 = array.array('i', arr2)
TypeError: 'float' object cannot be interpreted as an integer

数组与列表占用内存的比较

import sys, array
arr = array.array('i', [_ for _ in range(1024)])
lst = [_ for _ in range(1024)]

print(sys.getsizeof(arr))  # 输出:4176 array对象本身的大小
print(sys.getsizeof(lst))  # 输出:8856 列表list对象本身的大小  
# 注意:这些值可能因操作系统或Python解释器的实现和版本而略有不同。

数组方法

append()--将一个新项追加到数组的末尾

buffer_info()--返回给出当前内存信息的信息

byteswap()--字节交换数组的所有项

count()--返回对象的出现次数

extend()--通过从可迭代项中附加多个元素来扩展数组

fromfile()--从文件对象读取项

fromlist()--从列表中追加项

frombytes()--从字符串中追加项

fromunicode()--从unicode字符串中追加项

index()--返回对象第一次出现的索引

insert()--在数组中提供的位置插入一个新项

pop()--移除并返回项(默认为最后一个)

remove()--删除对象的第一个出现项

reverse()--反转数组中项目的顺序

tofile()--将所有项写入文件对象

tolist()--返回转换为普通列表的数组

tobytes()--返回转换为字符串的数组

在举例讲解前先来复习一个列表list的方法,用法相同的(绿色标注)可以省略不学:

append(self, object, /)
    Append object to the end of the list.

clear(self, /)
    Remove all items from list.

copy(self, /)
    Return a shallow copy of the list.

count(self, value, /)
    Return number of occurrences of value.

extend(self, iterable, /)
    Extend list by appending elements from the iterable.

index(self, value, start=0, stop=9223372036854775807, /)
    Return first index of value.
    Raises ValueError if the value is not present.

insert(self, index, object, /)
    Insert object before index.

pop(self, index=-1, /)
    Remove and return item at index (default last).
    Raises IndexError if list is empty or index is out of range.

remove(self, value, /)
    Remove first occurrence of value.
    Raises ValueError if the value is not present.

reverse(self, /)
    Reverse *IN PLACE*.

sort(self, /, *, key=None, reverse=False)
    Sort the list in ascending order and return None.

用法讲解

buffer_info()

返回当前数组缓冲区的内存信息。

import array
arr = array.array('i', [1, 2, 3])
buffer_info = arr.buffer_info()
print(buffer_info)  # 输出包含内存地址、大小等信息的元组

byteswap()

字节交换数组的所有项,通常用于处理二进制数据的不同字节顺序。

import array
arr = array.array('i', [0x12345678])  # 假设这是一个32位整数  
arr.byteswap()
print(arr)  # 输出:[305419896] (0x78563412)

fromfile()

从文件对象中读取项,通常用于从二进制文件中读取数据。

import array
with open('data.bin', 'rb') as f:
    arr = array.array('i')
    arr.fromfile(f, 3)  # 从文件中读取3个整数  
print(arr)  # 输出:假设文件中有3个整数,则输出这些整数构成的数组

fromlist()

从列表中追加项,创建一个新的数组。

import array
list_data = [1, 2, 3, 4, 5]
arr = array.array('i', list_data)
print(arr)  # 输出:array('i', [1, 2, 3, 4, 5])

frombytes()

从字节字符串中追加项,创建一个新的数组。

import array
byte_data = b'\x01\x02\x03\x04'
arr = array.array('B', byte_data)  # 'B' 表示无符号字符  
print(arr)  # 输出:array('B', [1, 2, 3, 4])

tofile()

将所有项写入文件对象,通常用于将数组数据写入二进制文件。

import array
arr = array.array('i', [1, 2, 3])
with open('output.bin', 'wb') as f:
    arr.tofile(f)
# 现在'output.bin'文件包含数组的数据

tolist()

返回转换为普通列表的数组。

import array
arr = array.array('i', [1, 2, 3])
list_data = arr.tolist()
print(list_data)  # 输出:[1, 2, 3]

tobytes()

返回转换为字节字符串的数组。

import array
arr = array.array('i', [1, 2, 3])
byte_data = arr.tobytes()
print(byte_data)  # 输出:b'\x01\x00\x00\x00\x02\x00\x00\x00\x03\x00\x00\x00'

用法举例

实例1
import array  # 创建一个浮点数类型的array实例  
float_array = array.array('f', [1.0, 2.0, 3.0, 4.0, 5.0])  # 打印原始数组  
print("Original Array:", float_array)  # 计算每个元素的平方  
squared_array = array.array('f')  
for num in float_array:  squared_array.append(num ** 2)  # 打印平方数组  
print("Squared Array:", squared_array)  # 计算每个元素的立方  
cubed_array = array.array('f')  
for num in float_array:  cubed_array.append(num ** 3)  # 打印立方数组  
print("Cubed Array:", cubed_array)  # 计算平方和立方数组的和  
sum_squared = sum(squared_array)  
sum_cubed = sum(cubed_array)  # 打印和  
print("Sum of Squared:", sum_squared)  
print("Sum of Cubed:", sum_cubed)

输出结果:

Original Array: array('f', [1.0, 2.0, 3.0, 4.0, 5.0])
Squared Array: array('f', [1.0, 4.0, 9.0, 16.0, 25.0])
Cubed Array: array('f', [1.0, 8.0, 27.0, 64.0, 125.0])
Sum of Squared: 55.0
Sum of Cubed: 225.0

实例2
import array  # 原始字符串  
original_string = "Hello, World!"  # 将字符串转换为字符数组  
# 注意:'u' 类型用于存储 Unicode 字符,但在 Python 3 中,'u' 类型已被废弃  
# 我们应该使用 'U' 类型来存储 Unicode 字符(码点),但这通常用于宽字符集  
# 在此示例中,我们将使用字节数组 'b' 并通过编码字符串来处理它  # 编码原始字符串为字节  
encoded_string = original_string.encode('utf-8')  # 创建一个字节类型的array实例  
byte_array = array.array('b', encoded_string)  # 打印字节数组  
print("Byte Array:", byte_array)  # 查找特定字节(例如查找 'o' 字符的字节表示)  
# 注意:这里我们查找的是 'o' 字符的 UTF-8 编码的第一个字节  
# 在 ASCII 中,'o' 的编码是 0x6F,但在 UTF-8 编码的字符串中,我们需要找到正确的字节序列  
# 对于简单的 ASCII 字符,UTF-8 编码与 ASCII 编码相同  
target_byte = ord('o')  # 获取 'o' 字符的 ASCII 码点值  
target_indices = [i for i, b in enumerate(byte_array) if b == target_byte]  
print("Indices of 'o':", target_indices)  # 替换所有 'o' 字符的字节表示为另一个字符(例如 'x')  
# 注意:直接替换可能破坏 UTF-8 编码的多字节字符序列  
# 因此,这个例子仅适用于单字节字符(ASCII 范围内)的字符串  
replacement_byte = ord('x')  # 获取 'x' 字符的 ASCII 码点值  
for i in target_indices:  byte_array[i] = replacement_byte  # 将修改后的字节数组转换回字符串  
# 注意:如果替换了多字节字符的一部分,解码可能会失败  
try:  modified_string = byte_array.tobytes().decode('utf-8')  print("Modified String:", modified_string)  
except UnicodeDecodeError:  print("Decoding failed due to invalid UTF-8 sequence.")  # 注意:在处理包含非ASCII字符的字符串时,应该格外小心,  
# 因为UTF-8编码可能会使用多个字节来表示一个字符。  
# 在这种情况下,直接替换单个字节可能会破坏字符的编码。

输出结果:

Byte Array: array('b', [72, 101, 108, 108, 111, 44, 32, 87, 111, 114, 108, 100, 33])
Indices of 'o': [4, 8]
Modified String: Hellx, Wxrld!

实例3
import array  # 创建一个整数类型的array实例  
int_array = array.array('i', [1, 2, 3, 4, 5, 6, 7, 8, 9, 10])  # 打印原始数组  
print("Original Integer Array:", int_array)  # 将数组写入文件  
with open('int_array.bin', 'wb') as f:  int_array.tofile(f)  # 打开文件以读取二进制数据  
with open('int_array.bin', 'rb') as f:  # 读取整个文件到数组中  # 由于我们知道文件中的数据类型和大小,我们可以使用这些信息来创建数组  # 假设文件中的整数是32位的(即 'i' 表示整数),并且我们不知道有多少个整数  # 我们可以先读取文件的大小,然后除以整数的字节大小来得到整数的数量  file_size = f.seek(0, 2)  # 移动到文件末尾以获取文件大小  num_ints = file_size // 4  # 假设整数是32位的(4字节)  f.seek(0)  # 将文件指针重置回文件开头  # 创建一个空的array实例,用于存储读取的数据  read_array = array.array('i')  # 从文件中读取整数数据到数组中  read_array.fromfile(f, num_ints)  # 打印从文件中读取的数组  
print("Array Read from File:", read_array)# 验证两个数组是否相同  
assert int_array == read_array  
print("The arrays are the same.")

输出结果:

Original Integer Array: array('i', [1, 2, 3, 4, 5, 6, 7, 8, 9, 10])
Array Read from File: array('i', [1, 2, 3, 4, 5, 6, 7, 8, 9, 10])
The arrays are the same.


完。

相关文章:

多数pythoneer只知有列表list却不知道python也有array数组

数组和列表 Python中数组和列表是不同的&#xff0c;我敢断言大多数的pythoneer只知道有列表list&#xff0c;却不知道python也有array数组。列表是一个包含不同数据类型的元素集合&#xff0c;而数组是一个只能含相同数据类型的元素集合。 Python的array库是一个提供数组操作…...

【Rust】——控制流(if-else,循环)

&#x1f383;个人专栏&#xff1a; &#x1f42c; 算法设计与分析&#xff1a;算法设计与分析_IT闫的博客-CSDN博客 &#x1f433;Java基础&#xff1a;Java基础_IT闫的博客-CSDN博客 &#x1f40b;c语言&#xff1a;c语言_IT闫的博客-CSDN博客 &#x1f41f;MySQL&#xff1a…...

通过platform总线驱动框架编写LED灯的驱动,编写应用程序测试

mydev.c #include <linux/init.h> #include <linux/module.h> #include <linux/of_gpio.h> #include <linux/gpio.h> #include <linux/platform_device.h> #include <linux/mod_devicetable.h>// 创建功能码 #define LED_ON _IO(l, 1) #d…...

费舍尔FISHER金属探测器探测仪维修F70

美国FISHER LABS费舍尔地下金属探测器&#xff0c;金属探测仪等维修&#xff08;考古探金银铜探宝等仪器&#xff09;。 费舍尔F70视听目标ID金属探测器&#xff0c;Fisher 金属探测器公司成立于1931年&#xff0c;在实验条件很艰苦的情况下&#xff0c;研发出了地下金属探测器…...

Airtest-Selenium实操小课③:下载可爱猫猫图片

1. 前言 那么这周我们看看如何实现使用Airtest-Selenium实现自动搜索下载可爱的猫猫图片吧~ 2. 需求分析和准备 整体的需求大致可以分为以下步骤&#xff1a; 打开chrome浏览器 打开百度网页 搜索“可爱猫猫图片” 定位图片元素 创建存储图片的文件夹 下载可爱猫猫图片…...

Druid无法登录监控页面

问题表现&#xff1a;在配置和依赖都正确的情况下&#xff0c;无法通过配置的用户名密码登录Druid的监控页面 检查配置发现 配置的用户名和密码和请求中参数是一致的&#x1f914; Debug发现 ResourceServlet 是Druid的登录实现&#xff0c; 且调试发现usernameParam是null&am…...

【Linux系统化学习】深入理解匿名管道(pipe)和命名管道(fifo)

目录 进程间通信 进程间通信目的 进程间通信的方式 管道 System V IPC&#xff08;本地通信&#xff09; POSIX IPC&#xff08;网络通信&#xff09; 管道 什么是管道 匿名管道 匿名管道的创建 匿名管道的使用 匿名管道的四种情况 匿名管道的五种特性 命名管道 …...

信息学奥赛一本通1209:分数求和

1209&#xff1a;分数求和 时间限制: 1000 ms 内存限制: 65536 KB 提交数: 19111 通过数: 10647 【题目描述】 输入n个分数并对他们求和&#xff0c;并用最简形式表示。所谓最简形式是指&#xff1a;分子分母的最大公约数为11&#xff1b;若最终结果的分母为11&am…...

LabVIEW储氢材料循环寿命测试系统

LabVIEW储氢材料循环寿命测试系统 随着氢能技术的发展&#xff0c;固态储氢技术因其高密度和安全性成为研究热点。储氢材料的循环寿命是衡量其工程应用的关键。然而&#xff0c;传统的循环寿命测试设备存在成本高、测试效率低、数据处理复杂等问题。设计了一种基于LabVIEW软件…...

Unity3D 框架如何搭建基于纯Lua的U框架与开发模式详解

前言 Unity3D 是一款非常流行的游戏开发引擎&#xff0c;它支持C#、JavaScript和Boo等多种脚本语言。而Lua语言作为一种轻量级的脚本语言&#xff0c;也在游戏开发中得到了广泛应用。本文将介绍如何在Unity3D框架中搭建基于纯Lua的U框架&#xff0c;并详细讲解其开发模式。 对…...

Linux常见指令(2)

目录 1、tar指令 &#xff01; 2、bc指令 3、uname 4、重要热键 5、关机 1、tar指令 &#xff01; 功能&#xff1a;压缩/解压缩文件或目录,类似zip 我们先来看一下我们的文件即目录&#xff0c;接下来我们输入指令&#xff1a; tar -czf test.tgz test 压缩 -c &#xf…...

【C++】封装

1.封装的意义 封装是C面向对象三大特性之一 实例化&#xff08;通过一个类 创建一个对象的过程&#xff09; 类中的属性和行为 我们统一称为 成员 属性 成员属性 成员变量 行为 成员函数 成员方法 封装的意义&#xff1a; 1.将属性和行为作为一个整体&#xff0c;表现生活中的事…...

Maxwell安装部署

1 Maxwell输出格式 database&#xff1a;变更数据所属的数据库table&#xff1a;变更数据所属的表type&#xff1a;数据变更类型ts&#xff1a;数据变更发生的时间xid&#xff1a;事务idcommit&#xff1a;事务提交标志&#xff0c;可用于重新组装事务data&#xff1a;对于inse…...

说一下JVM类加载机制?

Java中的所有类&#xff0c;都需要由类加载器装载到JVM中才能运行。类加载器本身也是一个类&#xff0c;而它的工作就是把class文件从硬盘读取到内存中。 在写程序的时候&#xff0c;我们几乎不需要关心类的加载&#xff0c;因为这些都是隐式装载的&#xff0c;除非我们有特殊…...

解决SpringAMQP工作队列模型程序报错:WARN 48068:Failed to declare queue: simple.queue

这里写目录标题 1.运行环境2.报错信息3.解决方案4.查看解决之后的效果 1.运行环境 使用docker运行了RabbitMQ的服务器&#xff1a; 在idea中导入springAMQP的jar包&#xff0c;分别编写了子模块生产者publisher&#xff0c;消费者consumer&#xff1a; 1.在publisher中运行测试…...

mysql在服务器中的主从复制Linux下

mysql在服务器中的主从复制Linux下 为什么要进行主从复制主从复制的原理主从复制执行流程操作步骤主库创建从库创建 测试 为什么要进行主从复制 在业务中通常会有情况&#xff0c;在sql执行时&#xff0c;将表锁住&#xff0c;导致不能进行查询&#xff0c;这样就会影响业务的…...

QT-Day2

思维导图 作业 使用手动连接&#xff0c;将登录框中的取消按钮使用qt4版本的连接到自定义的槽函数中&#xff0c;在自定义的槽函数中调用关闭函数 将登录按钮使用qt5版本的连接到自定义的槽函数中&#xff0c;在槽函数中判断ui界面上输入的账号是否为"admin"&#x…...

流量分析——陇剑杯 2021【签到、jwt】

目录 签到1、攻击者正在进行的可能是什么协议的网络攻击 jwt1、该网站使用了______认证方式。前置知识&#xff1a;解&#xff1a; 2、黑客绕过验证使用的jwt中&#xff0c;id和username是3、黑客获取webshell之后&#xff0c;权限是什么4、黑客上传的恶意文件文件名是5、黑客在…...

Java并发基础:原子类之AtomicIntegerFieldUpdater全面解析

本文概要 AtomicIntegerFieldUpdater类提供了一种高效、简洁的方式来原子性地更新对象的volatile字段&#xff0c;无需使用重量级的锁机制&#xff0c;它通过基于反射的API实现了细粒度的并发控制&#xff0c;提升了多线程环境下的性能表现。 AtomicIntegerFieldUpdater核心概…...

普中51单片机学习(串口通信)

串口通信 原理 计算机通信是将计算机技术和通信技术的相结合&#xff0c;完成计算机与外部设备或计算机与计算机之间的信息交换 。可以分为两大类&#xff1a;并行通信与串行通信。并行通信通常是将数据字节的各位用多条数据线同时进行传送 。控制简单、传输速度快&#xff1…...

【ArcGIS】利用高程进行坡度分析

在ArcGIS中利用高程进行坡度分析 坡度ArcGIS实操参考 坡度 坡度是地表单元陡缓的程度&#xff0c;通常把坡面的垂直高度和水平距离的比值称为坡度。 坡度的表示方法有百分比法、度数法、密位法和分数法四种&#xff0c;其中以百分比法和度数法较为常用。 &#xff08;1&#…...

递归读取文件夹下的所有文件

水一篇文章 &#x1f436; 代码 package file;import org.apache.commons.lang3.StringUtils; import org.junit.Test;import java.io.File; import java.util.Objects;/*** FlattenDirFiles** author allens* date 2024/2/19*/ public class FlattenDirFiles {// 文件数量pri…...

phpspreadsheet导出数据和图片到excel

仅作记录&#xff0c;废话不多说 前提是已经安装了phpspreadsheet &#xff08; composer require phpoffice/phpspreadsheet &#xff09; 一、 数据拼装&#xff0c;调用excel类 <?php /*** 电子台账* Date: 2023/4/20* Time: 17:28*/namespace app\store\controlle…...

Seata的 TCC 模式

目录 概述 使用 依赖与配置 代码 概述 TCC 模式是一种侵入式的分布式事务解决方案&#xff0c;它不依赖于数据库的事务&#xff0c;而是要求开发者自定义完成 预提交、提交、回滚的方法逻辑。因此&#xff0c;它是一个种偏 复杂、灵活、有侵入性 的分布式事务处理方案。 De…...

Vue全局指令防止重复点击(等待请求)

继《vue之全局请求loading》之后&#xff0c;总觉得全局loading有时候不太…友好&#xff0c;所以总想将loading加到被点击的元素上面&#xff0c;于是乎就想到了点击事件与请求方法相关联&#xff0c;本想重写组件的click方法&#xff0c;但是这样对组件的影响太大&#xff0c…...

数据库索引面试的相关问题

查看索引的执行计划 索引失效的情况 1、索引列上做了计算&#xff0c;函数&#xff0c;类型转换等操作。索引失效是因为查询过程需要扫描整个索引并回表。代价高于直接全表扫描。 Like匹配使用了前缀匹配符“%abc” 字符串不加引号导致类型转换。 原因&#xff1a; 常见索…...

Spring启动生命周期

Spring Boot 生命周期详解 Spring Boot 应用程序的生命周期包含几个阶段&#xff0c;每个阶段都有特定的事件和钩子&#xff0c;允许开发者在应用程序的不同生命周期阶段插入自定义逻辑。以下是 Spring Boot 生命周期的主要阶段和对应的事件&#xff1a; 准备阶段&#xff1a;…...

瑞芯微RK3568芯片介绍

RK3568简介 RK3568是一款由瑞芯微电子有限公司&#xff08;Rockchip Electronics Co. Ltd&#xff09;推出的高性能多媒体处理器&#xff0c;定位于中高端市场&#xff0c;被广泛应用于平板电脑、多媒体盒子、电子看板和工业控制等领域。以下是对这款芯片的简要介绍&#xff1…...

15.一种坍缩式的简单——组合模式详解

当曾经的孩子们慢慢步入社会才知道&#xff0c;那年味渐淡的春节就像是疾驰在人生路上的暂停键。 它允许你在隆隆的鞭炮声中静下心来&#xff0c;瞻前顾后&#xff0c;怅然若失。 也允许你在寂静的街道上屏气凝神&#xff0c;倾听自己胸腔里的那团人声鼎沸。 孩子们会明白的&am…...

Node.js的debug模块源码分析及在harmonyOS平台移植

Debug库 是一个小巧但功能强大的 JavaScript 调试工具库&#xff0c;可以帮助开发人员更轻松地进行调试&#xff0c;以便更快地发现和修复问题。它的主要特点是可以轻松地添加调试日志语句&#xff0c;同时在不需要调试时可以轻松地禁用它们&#xff0c;以避免在生产环境中对性…...

可以做兼职的动漫网站/关键词查网址

数据定义语言DDLData Definition Language-数据定义语言&#xff1a;create / drop / alter 创建数据库 create database school default charset utf8mb4;create database:固定写法school:库名default charset:设置默认的字符集utf8mb4:库中数据的格式&#xff0c;最大4字节的…...

网站建站系统有哪些/免费网络推广网址

Python实战社群Java实战社群长按识别下方二维码&#xff0c;按需求添加扫码关注添加客服进Python社群▲扫码关注添加客服进Java社群▲来源丨Tech星球(微信ID&#xff1a;tech618)张小龙对下一个10年的深度思考。Tech星球(微信ID&#xff1a;tech618)演讲者 | 张小龙编者按&…...

日照做网站公司/如何设置友情链接

目的 序 新的一年又到了&#xff0c;该跳槽的跳槽了,那跳槽是不是又得面试了&#xff0c;面试中总会问些用不到的。或者有些用到的&#xff0c;但是却当时没说出来。后悔万分&#xff0c;之前被这种问题居然问懵逼了。天天上班写代码&#xff0c;忘记了理论知识。今天补充一下…...

这样做网站/百度建站

Ruby中的字符串处理非常灵活"abc"[0] 返回97 就是a"abc"[1] 98"abc"[2] 99"abc"[3] nil"abc"[-1] 99 从后向前数"abc"[-2] 98"abc"[-3] 97"abc"[-4] nil"abc" * 2 返回"abca…...

珠海中国建设银行招聘信息网站/国内5大搜索引擎

WCF由 .NET Framework 3.0 (大概在07年前后)开始引入&#xff0c;时隔五年多&#xff0c;才开始学习&#xff0c;再看到一些大牛在几年前已经 对WCF有比较深入了解&#xff0c;并写了不少博客&#xff0c;顿感学习之迟钝、技术之落伍——这其中有些人可能是对新技术的狂热和兴趣…...

网站建设实训日记/北京全网营销推广公司

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼sqlplus 运行脚本prvtlmpg.plb 报错&#xff0c;请问各位大神有什么解决方法SQL> prvtlmpg.plbOracle GoldenGate Workaround prvtlmpgThis script provides a temporary workaround for bug 17030189.It is strongly recommend…...